Docker从另一个容器中取出一个容器?

我正试图了解与Docker的容器间通信。

我有两个容器。

容器A有一个暴露的端口,可以通过localhost:777访问。

所以如果我使用nmap -p 777 localhost我可以看到端口是开放的。

我进入容器B

 docker exec -it containerB bash 

容器B中,我可以使用上面的nmap命令来查看容器A上的端口777是否打开?

没有--network="container:containerA" arg,这是不可能的。

通常容器不共享相同的networking堆栈。 这允许相同的端口可以在多个容器中使用,但每个容器都有自己的本地主机。

使用--network="container:<container>" arg containerB将共享networking堆栈,因此您可以使用localhost访问containerA的端口777。

没有networkingarg,你可以做什么,以及如何与另一个容器进行通信,就是创build一个networking,并将两个容器放入networking(或使用链接)。 然后,您可以通过名称访问其他容器,如nmap -p 777 containerA

我能够根据这里find的信息做到这一点 。

从Docker主机:

 sudo ip addr show docker0 

注意docker0的ip地址,在我的情况下是172.17.0.1 。 然后进入容器B:

 docker exec -it <container> bash 

然后:

 nmap -p 777 172.17.0.1