我在一个CentOS的docker主机上运行了一个CentOS的docker容器。当我使用以下命令运行docker镜像时:
如果我运行相同的命令而不使用"--net=host":
docker run -d --net=host -p 8777:8777 ceilometer:1.x
,docker容器获得了主机的IP地址,但没有为其分配端口。如果我运行相同的命令而不使用"--net=host":
docker run -d -p 8777:8777 ceilometer:1.x
,则docker会暴露端口,但是使用不同的IP地址。Docker版本为1.10.1。我希望docker容器具有与主机相同的IP,并公开端口。在Dockerfile
中,我已经使用EXPOSE 8777
命令,但当在docker run
命令中使用"--net=host"时,它没有用处。
--net=host
与容器共享主机接口。 因此,如果您不启动监听任何端口的服务,则不会“发布”任何端口,因为没有必要。 如果共享主机接口,则-p
标志无用,因为所有所需端口将直接在主机接口上“发布”。 换句话说:当使用--net=host
时,主机和容器之间的端口空间被共享。 - Auzias