如果您使用的是Compose规范的Version 2,那么您的服务容器将全部运行在Docker网络中。您可以在同一网络中创建烟雾测试容器并按名称访问容器,无需查找IP地址。
以代表一个分布式系统这个样本撰写文件:
version: '2'
services:
web:
image: nginx:alpine
redis:
image: redis:alpine
如果YAML文件是在一个名为myapp
当你运行docker-compose u p -d
目录,撰写将创建一个网名叫myapp_default
,并为容器该网络中的服务:
> docker-compose up -d
Creating network "myapp_default" with the default driver
Creating myapp_redis_1
Creating myapp_web_1
现在你可以运行一个单独的容器中,其加入该网络 - 让你的烟雾测试并不需要是撰写文件的一部分。在网络内部,您可以通过名称从{app-name}_{service-name}_{instance-number}
建立集装箱。
举一个简单的例子,我可以使用图像安装一些实用程序,只是ping通这些容器:
> docker run -it --rm --network myapp_default sixeyed/ubuntu-with-utils
[email protected]:/# ping -c 1 myapp_web_1
PING myapp_web_1 (172.19.0.2) 56(84) bytes of data.
64 bytes from myapp_web_1.myapp_default (172.19.0.2): icmp_seq=1 ttl=64 time=0.423 ms
[email protected]:/# ping -c 1 myapp_redis_1
PING myapp_redis_1 (172.19.0.3) 56(84) bytes of data.
64 bytes from myapp_redis_1.myapp_default (172.19.0.3): icmp_seq=1 ttl=64 time=0.340 ms
也许你搜索类似kubernetes。它是码头集装箱周围的包装物。无需docker-compose,您可以完全访问Docker容器内外的所有信息。 https://kubernetesbootcamp.github.io/kubernetes-bootcamp/index.html – Gabbax0r