网络 – 如何暴露docker容器的ip和端口到外部docker主机没有端口映射?

当我在一个docker主机上为同一个web映像启动两个docker容器时。

>两个docker容器在同一个端口5000上侦听
>两个容器的端口5000映射到docker主机的不同端口:49155,49156
>从docker主机访问这两个容器需要通过访问docker主机ip和端口49155或49156

有没有解决方案从其外部docker主机通过其ip和端口,x.x.x.x:5000,没有端口映射访问docker容器?

不同Dock主机上的所有Docker容器可以直接互相访问。

最佳答案
您可以在主机上使用IP别名来实现此目的。

首先,在具有与主接口不同的IP地址的主机上添加虚拟接口。我们将主接口eth0用IP 10.0.0.10,虚拟接口eth0:1用IP地址10.0.0.11。

 ifconfig eth0:1 10.0.0.11 netmask 255.255.255.0 up 

现在运行容器并将端口5000映射到相应的接口。例如:

docker run -p 10.0.0.10:5000:5000 -name container1 <someimage> <somecommand>
docker run -p 10.0.0.11:5000:5000 -name container2 <someimage> <somecommand>

现在,您可以使用不同的IP地址从外部访问5000端口上的每个容器。

转载注明原文:网络 – 如何暴露docker容器的ip和端口到外部docker主机没有端口映射? - 代码日志