我一直在关注这两个教程,以了解一些关于Docker网络的知识:
第一个教程说容器没有使用-p或-P标志来暴露端口。
$ docker run --name redis-server -d <your username>/redis
当运行另一个容器时,它使用--link标志来“redis”容器:
$ docker run --name redis-client --link redis:db -i -t ubuntu:14.04 /bin/bash
这样我可以从 redis-client 容器连接到 redis-server 容器,因为它们是链接的。但在尝试其他配置时,我运行另一个容器,让我们称之为 redis-client-2 - 就在我停止并删除 redis-client 容器后 - 不要使用--link标志:
$ docker run --name redis-client-2 -i -t ubuntu:14.04 /bin/bash
我注意到即使没有设置--link标志,我也可以从 redis-client-2
连接到 redis-server 容器的redis服务器我的问题是,我是否误解了Docker上的--link和暴露端口的概念?为什么我仍然可以使用或不使用--link标志连接到 redis-server 容器?
提前致谢
答案 0 :(得分:2)
同一个Docker网络上的Docker容器(如果没有设置,default
)彼此可以自由地相互通信。 --link
是一流的Docker网络之前的遗留功能。
-p
&amp; -P
选项仅涉及暴露Docker网络(即主机)之外的端口,并且与容器到容器的通信无关。