docker主机可以ping它的容器吗?

我在mac上运行docker,我的docker运行centos和ifconfig显示eth0地址是“172.17.0.2”。

我试图在我的terminalping 172.17.0.2,但失败了。 所以,除了使用“docker运行”命令,有没有办法通过它的服务,如sshd访问容器?

我search了互联网,发现端口映射,所以我添加了“-P”选项来运行它:

docker run -itP centos6.5 bash 

它应该分配一个随机端口映射的权利? 但是list命令不会显示任何“端口”信息,如下所示(滚动一下)

 docker container list CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 136ab365eddd centos6.8_dev "bash" 11 seconds ago Up 10 seconds practical_wilson 

这很奇怪:为什么端口映射不起作用? 我试过了:

 $tcping localhost 5000 localhost port 5000 closed. 

docker主机可以ping它的容器吗?

没有。

至less不是在Mac上。

在Linux上,它只能顺便工作,而不是你应该做的任何事情。

Docker不是一个虚拟机 ,不应该被视为它。 相反,您应该将其视为虚拟应用程序。

如果您需要通过tcp / ip端口进入服务,则需要映射容器中的端口号。

docker run -p 1234:1234 my-image

其中1234是tcp / ip端口。

这会在您的主机上创build一个监听localhost:1234的服务。