【发布时间】:2019-02-19 18:40:21
【问题描述】:
我有多个 docker 容器,它们需要以一种方式相互通信,当容器设置为具有 IP 地址时,重新启动容器后该 IP 地址不会改变。
【问题讨论】:
标签: docker cloud containers orchestration
我有多个 docker 容器,它们需要以一种方式相互通信,当容器设置为具有 IP 地址时,重新启动容器后该 IP 地址不会改变。
【问题讨论】:
标签: docker cloud containers orchestration
建立容器间通信的最佳方式是创建networking bridge。
docker network create <network-name>
例如:docker network create my-net
docker run --name <container-name> --network <network-name> <image>
例如:
docker run -d --rm --name my-bb1 --network my-net nginx:alpine
docker run -d --rm --name my-bb2 --network my-net nginx:alpine
docker exec my-bb2 ping my-bb1
PING my-bb1 (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.165 ms
64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.184 ms
^C
容器名称将在重新启动之间保留。因此,只要容器名称不变,您就可以在同一个容器网络中访问它们。
我还强烈建议在涉及多个容器时使用docker-compose。
【讨论】: