【发布时间】:2018-04-25 22:07:15
【问题描述】:
我有一个在 $PORT 上提供给定服务的 docker 映像。
当使用 docker-compose 运行此容器的多个实例时,我可以使用 dig 从网络内部访问它们的所有 ip(其他 dns 工具可用)。
如何从 docker 命令行客户端和 python 库中获得相同的结果?
【问题讨论】:
标签: docker dns docker-compose containers
我有一个在 $PORT 上提供给定服务的 docker 映像。
当使用 docker-compose 运行此容器的多个实例时,我可以使用 dig 从网络内部访问它们的所有 ip(其他 dns 工具可用)。
如何从 docker 命令行客户端和 python 库中获得相同的结果?
【问题讨论】:
标签: docker dns docker-compose containers
实现此目的的一种方法是使用别名connect the docker containers to a network,您可以使用相同别名将多个容器连接到同一个网络,然后可以在对 dns 查找的响应中看到这些。
$ docker create network --name test-nwk
$ docker run --name test-service-1 busybox
$ docker run --name test-service-w busybox
$ docker network connect test-nwk test-service-1 --alias test-service
$ docker network connect test-nwk test-service-2 --alias test-service
现在,当您将另一个容器连接到该网络时,您可以在域 test-service 中看到它们都可见
$ docker run -it --name test busybox sh
/ # nslookup test-service
Server: 127.0.0.11
Address 1: 127.0.0.11
Name: test-service
Address 1: 172.18.0.3 test-service-2.test-nwk
Address 2: 172.18.0.2 test-service-1.test-nwk
【讨论】: