nacos持久化docker部署
结束了为期三个月的加班,总算是有时间闲下来,写写博客。
简介
微服务需要部署nacos, 但是用docker进行部署,容器删除之后配置就全部丢失。所以需要配置外部数据库,使得nacos数据持久化。
文件目录
|—— docker-compose.yml
|—— nacos |—— init.d |—— custom.properties
|—— mysql |—— init.sql
准备docker-compose配置
version: '3'
services:
nacos:
image: nacos/nacos-server:1.2.1
environment:
- MODE=standalone
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos-config
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=pass
volumes:
- ./nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
networks:
- default
ports:
- 8848:8848
mysql:
image: mysql:5.7.24
command: --max_allowed_packet=32505856
volumes:
- ./mysql/my.cnf:/root/mysql/my.cnf mysql
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
environment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- 3306
networks:
- default
networks:
default
init.sql 数据库初始脚本
https://raw.githubusercontent.com/alibaba/nacos/master/distribution/conf/nacos-mysql.sql
custom.properties
management.endpoints.web.exposure.include=*
my.cnf
[mysql]default-character-set=utf8
[mysqld]character-set-server=utf8
运行容器
执行compose up -d 即可
注意
需要注意,之前调试多次无法连接内网容器的mysql数据库,后来改了mysql版本之后终于连接成功。一般情况下,不建议使用mysql的docker容器。建议把mysql移到外部,有利于数据的持久化。