我在mac上运行docker,我的docker正在运行centos,ifconfig显示eth0地址是“172.17.0.2”。
我试图在终端中ping这个172.17.0.2但是失败了。所以除了使用“docker run”命令之外,有没有办法通过它的服务来访问容器,比如sshd?
我搜索了互联网并找到了端口映射,所以我添加了“-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.
答案 0 :(得分:2)
docker主机可以ping其容器吗?
没有
至少不在Mac上。
在Linux上,它只能偶然使用,而不是你应该做的事情。
Docker isn't a virtual machine并且不应该像对待那样对待。您应该将其视为虚拟应用程序。
如果您需要通过tcp / ip端口进入服务,则需要从容器中映射端口号。
docker run -p 1234:1234 my-image
其中1234
是tcp / ip端口。
这会在您的主机上localhost:1234
创建一个服务。