在本地创建了global-container-network,用于不同容器之间的通讯
$ docker network create global-container-network
在需要互相通讯的容器中,连接到 global-container-network 即可,如 nacos 连接到 msyql8
nacos 的 docker-compose.yml
version: "3"networks:global-container-network:external: trueservices:nacos:container_name: nacos-standalone-mysqlimage: nacos/nacos-serverports:- "8848:8848"- "9848:9848"- "9555:9555"env_file:- ./env/nacos-standlone-mysql.envvolumes:- ./logs:/home/nacos/logs- ./config/custom.properties:/home/nacos/init.d/custom.propertiesnetworks:- global-container-network
mysql8 的 docker-compose.yml 文件
version: "3"networks:global-container-network:external: trueservices:mysql:container_name: mysql8image: mysql/mysql-server:8.0.18-1.1.13command: --default-authentication-plugin=mysql_native_passwordports:- 3306:3306- 33060:33060environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_USER: hxyMYSQL_PASSWORD: hxyvolumes:- ./conf:/etc/mysql/conf.d- ./data:/var/lib/mysqlnetworks:- global-container-network
如果连接的是外部网络,需要在 docker-compose.yml 中指定 network 为 外部网络
networks:global-container-network:external: true
先启动 mysql8,然后启动 nacos
$ cd ~/docker/mysql8 // 进入 mysql8 目录$ docker-compose up -d$ cd ~/docker/nacos // 进入 nacos 目录$ docker-compose up -d
进入 nacos 容器,尝试 ping mysql8
$ docker exec -it nacos-standalone-mysql /bin/bash[root@2411284fab6a nacos]# ping mysql8PING mysql8 (172.26.0.2) 56(84) bytes of data.64 bytes from mysql8.global-container-network (172.26.0.2): icmp_seq=1 ttl=64 time=0.066 ms64 bytes from mysql8.global-container-network (172.26.0.2): icmp_seq=2 ttl=64 time=0.123 ms64 bytes from mysql8.global-container-network (172.26.0.2): icmp_seq=3 ttl=64 time=0.197 ms
可以 ping 到 mysql8 网络,证明容器之间可以正常进行通信
参考:
