Docker仍然可以看到有和没有--link标志设置的开放端口

时间:2016-05-16 22:21:19

标签: docker

我一直在关注这两个教程,以了解一些关于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 容器?

提前致谢

1 个答案:

答案 0 :(得分:2)

同一个Docker网络上的Docker容器(如果没有设置,default)彼此可以自由地相互通信。 --link是一流的Docker网络之前的遗留功能。

-p&amp; -P选项仅涉及暴露Docker网络(即主机)之外的端口,并且与容器到容器的通信无关。