1. 创建数据库
注意:必须通过与你nacos版本一致的sql脚本创建,否则可能会有各种奇葩的错误;(多么痛的领悟)
脚本地址:
https://github.com/alibaba/nacos/blob/2.0.3/distribution/conf/nacos-mysql.sql
由于docker镜像没有nacos的相关版本信息,最适当的做法是先把最新镜像拉取下来;然后不配置数据库,直接运行,通过管理控制台查看当前nacos的版本;具体操作看下面第二点;
版本对应信息(具体参照当前需要拉取的镜像版本)
2. 配置镜像
相关环境变量查看官方提供的文档
https://nacos.io/zh-cn/docs/quick-start-docker.html
# 拉取镜像(我当前最新的镜像版本是2.0.3 - 2022年5月9日)
docker pull nacos/nacos-server
# 运行镜像(不配置数据库,直接运行)
docker run -d \
--name nacos-service \
-e MODE=standalone \
-p 8848:8848 \
nacos/nacos-server:latest
# 运行镜像(带数据库配置)
docker run -d \
--name nacos-service \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=127.0.0.1 \
-e MYSQL_SERVICE_PORT=3306\
-e MYSQL_SERVICE_DB_NAME=nacos-service \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_PARAM='useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true' \
-p 8848:8848 \
nacos/nacos-server:latest
后续补充
从2.1版本开始需要主动开启鉴权功能(管理端登录账号)
如果不开启鉴权,则访问管理端将不再需要账号密码登录。影响到服务安全性;
docker run -it \
--name nacos-service \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_TOKEN='OTFGM0VCQTU0MzA0QTE5MTBEQzQyMDI5NDc0QkM0QTg5MUYzRUJBNTQzMDRBMTkxMERDNDIwMjk0NzRCQzRBOA==' \
-e NACOS_AUTH_IDENTITY_KEY='myServerIdentity' \
-e NACOS_AUTH_IDENTITY_VALUE='myServerSecurity' \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=127.0.0.1 \
-e MYSQL_SERVICE_PORT=3306\
-e MYSQL_SERVICE_DB_NAME=nacos-service \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_PARAM='useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true' \
-p 8848:8848 \
nacos/nacos-server:v2.2.2