MySQL + Nacos 容器部署同一主机,nacos无法访问mysql
·
如果 MySQL 容器和 Nacos 容器运行在同一台机器上,最佳实践是创建一个自定义的 Docker 网络。这样两个容器可以通过容器名称直接通信,既方便又稳定。
以下是基于你之前提供的配置(v2.4.3版本)的启动方案:
方案一:推荐(使用自定义网络,通过容器名连接)
这种方式不需要知道宿主机 IP,容器之间通过名字自动解析。
1. 创建自定义网络(如果还没有的话)
docker network create nacos-net
2. 确保 MySQL 容器在该网络中
如果你的 MySQL 容器还没启动,或者不在这个网络里,请先调整。假设你的 MySQL 容器名为 mysql,启动时加上 --network nacos-net。
(如果你的 MySQL 已经在运行且不在这个网络,可以用 docker network connect nacos-net mysql 命令将其加入)
3. 启动 Nacos 容器
关键点在于 -e MYSQL_SERVICE_HOST=mysql,这里直接填写你的 MySQL 容器名称。
docker run -d \
--name nacos-standalone \
--network nacos-net \ # 加入自定义网络
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \ # 声明使用mysql
-e MYSQL_SERVICE_HOST=mysql \ # 【关键】填MySQL容器的名字
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \ # 填你的MySQL用户名
-e MYSQL_SERVICE_PASSWORD=your_password \ # 填你的MySQL密码
-e MYSQL_SERVICE_DB_NAME=nacos \ # 填你创建的数据库名
-e JVM_XMS=512m \
-e JVM_XMX=512m \
nacos/nacos-server:v2.4.3
更多推荐

所有评论(0)