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
555
|´・ω・)ノヾ(≧∇≦*)ゝ(☆ω☆)(╯‵□′)╯︵┴─┴ ̄﹃ ̄(/ω\)∠( ᐛ 」∠)_(๑•̀ㅁ•́ฅ)→_→୧(๑•̀⌄•́๑)૭٩(ˊᗜˋ*)و(ノ°ο°)ノ(´இ皿இ`)⌇●﹏●⌇(ฅ´ω`ฅ)(╯°A°)╯︵○○○φ( ̄∇ ̄o)ヾ(´・ ・`。)ノ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃(ó﹏ò。)Σ(っ °Д °;)っ( ,,´・ω・)ノ╮(╯▽╰)╭ o(*////▽////*)q >﹏<( ๑´•ω•) (。•ˇ‸ˇ•。)