一尘不染

在docker run命令中提到--net = host时,Docker容器不会公开端口

docker

我在CentOS docker主机上有一个CentOS docker容器。当我使用此命令运行docker映像时docker run -d --net=host -p 8777:8777 ceilometer:1.x,docker容器获取主机的IP,但没有为其分配端口。

如果我在不使用“ –net = host”的情况下运行相同的命令,则docker docker run -d -p 8777:8777 ceilometer:1.x将公开端口,但使用不同的IP。码头工人版本是1.10.1。我希望Docker容器具有与主机相同的IP,并具有暴露的端口。我Dockerfile在指令中也提到过,EXPOSE 8777但是在docker run命令中提到“ –net = host”时没有用。


阅读 1608

收藏
2020-06-17

共1个答案

一尘不染

码头工人版本是1.10.1。我希望docker容器具有与主机相同的ip,并带有暴露的端口。

使用时,--net=host它告诉容器使用主机网络堆栈。因此,您不能 端口 公开 给主机,因为它 主机(就网络堆栈而言)。

docker inspect 可能不会显示公开端口,但是如果您有一个正在侦听端口的应用程序,则该应用程序将像在主机上运行一样可用。

2020-06-17