docker 主机能否 ping 通其容器?

Can docker host ping its containers?

我在 mac 上 运行ning docker,我的 docker 是 运行ning centos,ifconfig 显示 eth0 地址是“172.17.0.2 ".

我试图在我的终端中 ping 这个 172.17.0.2 但失败了。所以除了使用 "docker run" 命令,有没有办法通过像 sshd 这样的服务来访问容器?

我在互联网上搜索并找到了端口映射,所以我在 运行 中添加了“-P”选项:

docker run -itP centos6.5 bash

应该分配一个随机端口映射吧?但是 list 命令不显示任何 "port" 信息,如下所示(稍微滚动一下)

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:

$tcping localhost 5000
localhost port 5000 closed.

Can docker host ping its containers?

没有

至少 Mac 没有。

在 linux 上,它只是偶然起作用,无论如何都不是你应该做的事情。

Docker isn't a virtual machine 不应像现在这样对待。相反,您应该将其视为虚拟应用程序。

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

docker run -p 1234:1234 my-image

其中 1234 是 tcp/ip 端口。

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