写在前面,Nacos 2.2.3版本Docker安装Nacos并启动的官方文档维护的very bad!,导致踩了很多坑。 这次使用真实腾讯云服务器进行安装和配置实战,希望能够帮助大家少踩坑,本文在默认已安装docker的基础上进行。
1. docker拉取nacos镜像
首先去dockerhub搜索nacos镜像 nacos/nacos-server - Docker Image | Docker Hub 复制命令拉取最新版本的镜像
2. 建立nacos-start.sh文件。内容如下,并赋予文件可执行权限。(chmod 命令赋予权限, vim命令编辑文件)
docker run -d \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=ip or hostname \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=you-password \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_TOKEN=ZTQzMzgwNDk4YTkyNDAxOTkzOWZmODYwNzQ5ODFjNDA= \
-e NACOS_AUTH_IDENTITY_KEY=OTU0ZWQ2Y2MxYjBlNDFlYWI1OWQ4NWAkNzI2N2Q0Yzk= \
-e NACOS_AUTH_IDENTITY_VALUE=MGFjNmU3ZjgwZmM2NDAkMzg3MTNmMDQ4ODE5ZDAwOTQ= \
-v /home/docker/nacos/conf:/nacos/conf \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--name nacos \
--restart=always \
nacos/nacos-server
如果开启鉴权则需配置下面几个参数,否则启动会报错
-e NACOS_AUTH_ENABLE=true
-e NACOS_AUTH_TOKEN 一串base64编码字符串,原字符串长度>32
-e NACOS_AUTH_IDENTITY_KEY 一串base64编码字符串,原字符串长度>32
-e NACOS_AUTH_IDENTITY_VALUE 一串base64编码字符串,原字符串长度>32
String replace = UUID.randomUUID().toString().replace("-", ""); // UUID 去除符号刚好32个字符
System.out.println(replace+"\n"+ replace.length());
byte[] encode = Base64.getEncoder().encode(replace.getBytes());
System.out.println(new String(encode));
另外需多暴露两个端口,否则程序连接不上Nacos
-p 9848:9848 -p 9849:9849
执行 nacos-start.sh 启动docker nacos容器并访问,默认用户名和密码 nacos/nacos http://ip:8848/nacos