docker 共享网络的方式实现容器互联
本文以nacos连接mysql为例
前提已经在mysql容器中初始化好nacos数据库,库名nacos
创建一个共享网络
docker network create --driver bridge \
--subnt 192.168.0.0/24 \
--gateway 192.168.0.1 mynet
此处可以不指定网络模式、ip和网关,可以使用(docker network inspect 网络名称)查看ip
启动mysql容器
docker run -d \
--restart=always \
-m 256m \
--name mysql \
--net mynet \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
查看该网络中的容器情况
docker network inspect mynet
启动nacos容器,并连接mynet网络
我的nacos镜像是M芯片的,自行更换
把nacos的ip(环境变量MYSQL_SERVICE_HOST)换成mysql的容器名称或者在共享网络中的ip即可
docker run -d \
--net mynet \
-e MODE=standalone \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e JVM_XMN=256m \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=mysql \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true' \
--restart=always \
--privileged=true \
--name nacos \
nacos/nacos-server:v2.1.1-slim