参考https://blog.csdn.net/qq_43532386/article/details/105135848 在docker上安装nacos1.2.1失败了好几次。
使用docker logs -f -t --tail 100 nacos 我一直跟踪日志。
如https://www.cnblogs.com/zoujiaojiao/p/12558946.html 一样,我也遇到了同样的问题:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'MYSQL_SERVICE_HOST'
我试着给MYSQL_SERVICE_HOST赋值,错误居然跳过,于是我一个个试着给以下出错赋值(执行docker rm无数):
MYSQL_SERVICE_HOST
MYSQL_SERVICE_DB_NAME
MYSQL_SERVICE_USER
MYSQL_SERVICE_PASSWORD
结果还是运行失败,报错如下:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memoryMonitor' defined in URL [jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-config-1.2.1.jar!/com/alibaba/nacos/config/server/monitor/MemoryMonitor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'asyncNotifyService' defined in URL [jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-config-1.2.1.jar!/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverListService': Invocation of init method failed; nested exception is java.lang.RuntimeException: cannot get serverlist, so exit.
日志显示没有服务器清单,看到https://nacos.io/zh-cn/docs/quick-start-docker.html官网说明
Common property configuration
name | description | option |
---|---|---|
MODE | cluster模式/standalone模式 | cluster/standalone default cluster |
mode默认是非单机模式,于是我又试着添加NACOS_SERVERS。
最终得到可以执行成功的如下docker执行命令:
docker run \
--name nacos \
--restart=always \
--ip 172.17.0.3 \
-d \
-e NACOS_SERVERS=172.17.0.3:8848 \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456\
-e MYSQL_MASTER_SERVICE_HOST=172.17.0.2 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=123456\
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e NACOS_USER=nacos\
-e NACOS_PASSWORD=nacos\
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-e JVM_XMN=256m \
-e JVM_MS=32m \
-e JVM_MMS=80m \
-p 8848:8848 \
nacos/nacos-server
集群安装:
//nacos-1
docker run \
--name nacos-1 \
--hostname=nacos-1 \
--restart=always \
--ip 172.17.0.3 \
-d \
-e NACOS_SERVERS=172.17.0.3:8848,172.17.0.4:8848,172.17.0.5:8848 \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456\
-e MYSQL_MASTER_SERVICE_HOST=172.17.0.2 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=123456\
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e NACOS_USER=nacos\
-e NACOS_PASSWORD=nacos\
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-e JVM_XMN=256m \
-e JVM_MS=32m \
-e JVM_MMS=80m \
-p 3333:8848 \
nacos/nacos-server
//nacos-2
docker run \
--name nacos-2 \
--hostname=nacos-2 \
--restart=always \
--ip 172.17.0.4 \
-d \
-e NACOS_SERVERS=172.17.0.3:8848,172.17.0.4:8848,172.17.0.5:8848 \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456\
-e MYSQL_MASTER_SERVICE_HOST=172.17.0.2 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=123456\
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e NACOS_USER=nacos\
-e NACOS_PASSWORD=nacos\
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-e JVM_XMN=256m \
-e JVM_MS=32m \
-e JVM_MMS=80m \
-p 4444:8848 \
nacos/nacos-server
//nacos-3
docker run \
--name nacos-3 \
--hostname=nacos-3 \
--restart=always \
--ip 172.17.0.5 \
-d \
-e NACOS_SERVERS=172.17.0.3:8848,172.17.0.4:8848,172.17.0.5:8848 \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456\
-e MYSQL_MASTER_SERVICE_HOST=172.17.0.2 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=123456\
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e NACOS_USER=nacos\
-e NACOS_PASSWORD=nacos\
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-e JVM_XMN=256m \
-e JVM_MS=32m \
-e JVM_MMS=80m \
-p 5555:8848 \
nacos/nacos-server