希望把SpringCloudAlibaba的Nacos安装到docker里,然后能把数据存放到MySQL作为持久化方案。
拉取镜像
默认拉取最近的镜像(2.0.x)
docker pull nacos/nacos-server # 或者指定版本 docker pull nacos/nacos-server:v2.0.4
准备数据库初始化文件
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql
或者:https://gitee.com/mirrors/Nacos/blob/develop/config/src/main/resources/META-INF/nacos-db.sql
# 建库(我这里用的nacos,官方说明是nacos_config问题也不大,都一样) create database nacos; use nacos; -- 执行或者导入 nacos-db.sql,不知道为什么这个文件里的注释还写了 【数据库全名 = nacos_config】 -- 可以直接复制粘贴到 navicat 或 terminal 上执行,200多行不是很长 # 创建 nacos 单独使用的一个用户,也可以直接把 root 用户给他 create user 'nacos'@'%' IDENTIFIED BY 'nacos'; -- 库nacos的所有表的执行存储过程、CRUD权限 grant execute, insert, select, update on nacos.* to 'nacos'@'%'; -- 刷新权限 FLUSH PRIVILEGES; -- 查看权限 show grants for nacos;
创建日志目录
方便查看日志
# 创建 nacos 日志存放目录 mkdir -p /home/docker/nacos/logs
启动容器
docker run -d \ -e MODE=standalone \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.17.0.4 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=nacos \ -e MYSQL_SERVICE_PASSWORD=nacos \ -e MYSQL_SERVICE_DB_PARAM=allowPublicKeyRetrieval=true\&autoReconnect=true\&useUnicode=true\&characterEncoding=UTF-8\&useSSL=false\&serverTimezone=Asia/Shanghai \ -p 8848:8848 \ -p 8848:9848 \ -p 8848:9849 \ -v /home/docker/nacos/logs:/home/nacos/logs \ -v /home/docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \ --name nacos \ --restart=always \ nacos/nacos-server
其中可以指定自定义的配置文件custom.properties:
#*************** Config Module Related Configurations ***************# ### If use MySQL as datasource: spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://172.17.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=3000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=true&serverTimezone=Asia/Shanghai db.user.0=nacos db.password.0=nacos # 安全起见 开启 Nacos server 的鉴权 nacos.core.auth.enabled=true
查看启动日志
docker logs nacos # 或者 tail -f /home/docker/nacos/logs/nacos.log
访问
http://ip:8848/nacos 用户名和密码默认都是nacos
修改用户名或者密码后,再去数据库查看nacos.users表,里面的记录已经修改了,说明使用的是持久化是mysql
文章评论