1. 为什么写这篇文章

记录一下踩坑,因为naocs在docker上反复自动退出,所以在网上查到说删除容器(docker rm name/id),重启一个就好了,但是由于对docker的操作不熟悉,并不会文件挂载等一些操作,所以只能先重启nacos,然后再修改nacos 的application.properties,但是就这样一个小操作任然踩坑几小时,实属不该;

2.具体踩坑排错流程

2.1 首先是重启nacos,我的docker下载的是nacos-server:v2.0.3,所以重启命令是

docker run --name nacos -e MODE=standalone -d -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.0.3

 我的需求只要单机启动即可;

2.2 进入nacos容器

 docker exec -it nacos bash

 2.3.cd 到conf文件夹下,打开application.properties,文件进行编辑

1. cd conf 

2. vim application.properties

2.4 开始修改配置文件

# 连接数据库的操作,主要修改这一部分数据就行;

# spring

server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}

server.contextPath=/nacos

server.port=${NACOS_APPLICATION_PORT:8848}

# spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:""}

# 改为

spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}

nacos.cmdb.dumpTaskInterval=3600

nacos.cmdb.eventTaskInterval=10

nacos.cmdb.labelTaskInterval=300

nacos.cmdb.loadDataAtStart=false

db.num=${MYSQL_DATABASE_NUM:1}

#db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}

# 修改为

db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST:mysqlIp}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME:nacos_config}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}

# db.url.1直接注释掉,修改db.url.0就行了;

#db.url.1=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}

# db.user=${MYSQL_SERVICE_USER}

# 改为

db.user=${MYSQL_SERVICE_USER:root}

#db.password=${MYSQL_SERVICE_PASSWORD}

# 改为

db.password=${MYSQL_SERVICE_PASSWORD:10086}

### The auth system to use, currently only 'nacos' is supported:

nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}

 需要注意的几点:1. mysql的ip地址,这里如果是跑的虚拟机/云服务器; 直接写虚拟机/云服务器的地址就行,或者写docker中mysql的地址也行(前提是你的mysql和nacos都跑在一个docker上,否则只建议使用直接的IP地址)

#查看docker中mysql的IP地址

docker inspect mysql

#mysql是docker中的mysql容器的名字,注意自己的容器名字

 2.5 报存退出和重启

# 修改好application.properties文件后

1. 按exc建 和  :     输入 wq 保存退出

2. exit 退出nacos 容器

3. docker restart nacos(这里也是nacos的容器名字,请按照你自己的写)

4. docker ps -a / docker ps 查看容器运行状态

注意:这里使用 docker ps后发现nacos容器在运行,但是其实内部可能由于配置错误,错误了,如msyql的IP地址不对,会报No DataSource set 的错误 ;所以使用logs再检查一下;

5. docker logs nacos(这里也是nacos的容器名字,请按照你自己的写) 检查自己nacos实际运行情况;

 2.6 输入网址查看查看nacos的服务http://你的ip地址/nacos/#/,账号密码都是nacos

3. 总结

3.1 写到这里发现没有写mysql建表,所以干脆再写一篇,地址如下;

docker 安装mysql

3.2 最后发现自己跑不起来的原因就是mysql的密码弄错了,这再一次的证明了我是一个没有记性的人,写这篇文章就是为了让自己涨涨记性。 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐