Docker 安装Nacos 2.2.3 踩坑记录

2,359 阅读2分钟

写在前面,Nacos 2.2.3版本Docker安装Nacos并启动的官方文档维护的very bad!,导致踩了很多坑。 这次使用真实腾讯云服务器进行安装和配置实战,希望能够帮助大家少踩坑,本文在默认已安装docker的基础上进行。

1. docker拉取nacos镜像

首先去dockerhub搜索nacos镜像 nacos/nacos-server - Docker Image | Docker Hub 复制命令拉取最新版本的镜像

image.png

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