最近需要部署一个自己的spring cloud项目上云端,需要在云端环境中有一个nacos,现在就用docker容器快速部署一个单体nacos使用。
准备一个mysql用于配置和储存
# nacos不支持mysql8,所以使用mysql5.7
docker pull mysql:5.7
# 启动第二个mysql服务,对外端口3307
docker run -p 3307:3306 --name mysql5 -e MYSQL_ROOT_PASSWORD=xxxxxx -d mysql:5.7
随后在数据库里面建一个库,并执行下初始化的脚本,网上有很多,去搜一个。
下载nacos docker镜像
docker pull nacos/nacos-server:2.0.3
建立挂载目录
# 记得切换成自己的目录
cd /mydata/
mkdir nacos/logs
mkdir nacos/conf
mkdir nacos/data
启动单体nacos,使用mysql持久化储存
docker run --name nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=<your host>\
-e MYSQL_SERVICE_PORT=<your port> \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=xxxxxxx \
-e MYSQL_SERVICE_DB_NAME=<your db name> \
-e MYSQL_SERVICE_DB_PARAM="allowPublicKeyRetrieval=true&characterEncoding=UTF8&serverTimezone=UTC" \
-e MODE=standalone \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/data:/home/nacos/data\
-d nacos/nacos-server:2.0.3
到这一步的话其实就启动完毕了。看看能不能访问了。
这个过程中可能出现的问题
Docker 启动 Nacos 报错:No DataSource set
首先要用mysql5
其次要确保数据库能连的上
参数中要指定数据库的名字,数据库里面要有相应的表
启动参数中要有allowPublicKeyRetrieval=true,这个很重要