在本地创建了global-container-network,用于不同容器之间的通讯

    1. $ docker network create global-container-network

    在需要互相通讯的容器中,连接到 global-container-network 即可,如 nacos 连接到 msyql8

    nacos 的 docker-compose.yml

    1. version: "3"
    2. networks:
    3. global-container-network:
    4. external: true
    5. services:
    6. nacos:
    7. container_name: nacos-standalone-mysql
    8. image: nacos/nacos-server
    9. ports:
    10. - "8848:8848"
    11. - "9848:9848"
    12. - "9555:9555"
    13. env_file:
    14. - ./env/nacos-standlone-mysql.env
    15. volumes:
    16. - ./logs:/home/nacos/logs
    17. - ./config/custom.properties:/home/nacos/init.d/custom.properties
    18. networks:
    19. - global-container-network

    mysql8 的 docker-compose.yml 文件

    1. version: "3"
    2. networks:
    3. global-container-network:
    4. external: true
    5. services:
    6. mysql:
    7. container_name: mysql8
    8. image: mysql/mysql-server:8.0.18-1.1.13
    9. command: --default-authentication-plugin=mysql_native_password
    10. ports:
    11. - 3306:3306
    12. - 33060:33060
    13. environment:
    14. MYSQL_ROOT_PASSWORD: 123456
    15. MYSQL_USER: hxy
    16. MYSQL_PASSWORD: hxy
    17. volumes:
    18. - ./conf:/etc/mysql/conf.d
    19. - ./data:/var/lib/mysql
    20. networks:
    21. - global-container-network

    如果连接的是外部网络,需要在 docker-compose.yml 中指定 network 为 外部网络

    1. networks:
    2. global-container-network:
    3. external: true

    先启动 mysql8,然后启动 nacos

    1. $ cd ~/docker/mysql8 // 进入 mysql8 目录
    2. $ docker-compose up -d
    3. $ cd ~/docker/nacos // 进入 nacos 目录
    4. $ docker-compose up -d

    进入 nacos 容器,尝试 ping mysql8

    1. $ docker exec -it nacos-standalone-mysql /bin/bash
    2. [root@2411284fab6a nacos]# ping mysql8
    3. PING mysql8 (172.26.0.2) 56(84) bytes of data.
    4. 64 bytes from mysql8.global-container-network (172.26.0.2): icmp_seq=1 ttl=64 time=0.066 ms
    5. 64 bytes from mysql8.global-container-network (172.26.0.2): icmp_seq=2 ttl=64 time=0.123 ms
    6. 64 bytes from mysql8.global-container-network (172.26.0.2): icmp_seq=3 ttl=64 time=0.197 ms

    可以 ping 到 mysql8 网络,证明容器之间可以正常进行通信

    参考: