Docker 小白快速配置nacos连接mysql

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的密码弄错了,这再一次的证明了我是一个没有记性的人,写这篇文章就是为了让自己涨涨记性。 

可以按照以下步骤搭建nacos连接mysql5.7: 1. 创建一个新目录,进入该目录并创建一个名为`docker-compose.yml`的文件。 2. 在`docker-compose.yml`文件中添加以下内容: ```yaml version: '3' services: nacos: image: nacos/nacos-server:2.0.3 container_name: nacos environment: - PREFER_HOST_MODE=hostname - MODE=standalone - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=db - MYSQL_SERVICE_PORT=3306 - MYSQL_DATABASE=nacos_config - MYSQL_USER=nacos - MYSQL_PASSWORD=nacos ports: - "8848:8848" depends_on: - db networks: - nacos-network db: image: mysql:5.7 container_name: nacos-mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=nacos_config - MYSQL_USER=nacos - MYSQL_PASSWORD=nacos ports: - "3306:3306" volumes: - ./data:/var/lib/mysql networks: - nacos-network networks: nacos-network: driver: bridge ``` 上述配置文件中,我们定义了两个服务,一个是nacos,另一个是mysql5.7,其中nacos服务依赖于mysql服务。 3. 在终端中进入到该目录,并运行以下命令启动服务: ```bash docker-compose up -d ``` 4. 启动后,可以通过以下地址访问nacos控制台: ``` http://localhost:8848/nacos ``` 5. 在nacos控制台中,可以添加mysql的数据源配置,具体步骤如下: - 点击左侧菜单栏的“配置管理”按钮; - 在“配置”页面中,点击“新建配置”按钮; - 在“新建配置”页面中,输入“Data Id”和“Group”,然后在“配置格式”中选择“Properties”; - 在“配置内容”中,输入以下内容: ``` spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://db:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos db.password=nacos ``` 其中,db.url.0的值中的“db”是mysql服务在docker-compose.yml文件中定义的名称。 6. 添加完成后,可以在nacos控制台的“服务管理”页面中查看mysql服务是否注册成功。 以上就是使用docker-compose搭建nacos连接mysql5.7的步骤。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值