如果 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

更多推荐