Docker 小记

MrSnake
2022-02-14 / 0 评论 / 32 阅读 / 正在检测是否收录...

Docker-compose 两个容器之间通信

配置另一个容器的网卡,并与之进行通信

以我自己的 Clickhouse 为例,想要与已经部署的 mysql 服务配置在同一网卡下。

1.首先找到创建 mysql 服务生成的网卡

mac@mrsnake ~ % docker network ls
NETWORK ID     NAME                    DRIVER    SCOPE
1de739ed1402   bridge                  bridge    local
d72795b661b2   host                    host      local
7439b4407605   slave_mysql57_default   bridge    local

发现名为 slave_mysql57_default 的网卡

2.写 docker-compose 文件

// 与 service 同级
networks:
    extnetwork:
        external:
            name: "slave_mysql57_default"

3.实际调用,完整示例

version: "3"
services:
  ch_server:
    image: yandex/clickhouse-server
    ports:
      - "8123:8123"
      - "9000:9000"
      - "9009:9009"
    networks:
      extnetwork: // 自定义的名称
          ipv4_address: 172.23.0.3// 设置ip地址
   
    ulimits:
      nproc: 65535
      nofile:
        soft: 262144
        hard: 262144

  ch_client:
    image: yandex/clickhouse-client
    entrypoint:
      - /bin/sleep
    command:
      - infinity

networks:
  extnetwork: // 自定义名称
    external: // 使用外部已经定义好的名字
      name: "slave_mysql57_default"

查看 slave_mysql57_default 的网卡的 ip 信息

boohee@mrsnake ~ % docker inspect slave_mysql57_default | grep IPv4 -B 3
                "Name": "mysql5.7_slave",
                "EndpointID": "b5ff422fc00578",
                "MacAddress": "02:42:ac:17:00:02",
                "IPv4Address": "172.23.0.2/16",

4.启动

docker-compose up -d
1

评论 (0)

取消