有没有办法将static public IP
容器分配给容器.所以容器有公共IP.客户端可以使用IP访问容器.
现在应该可以使用docker 1.10和您现在看到的新docker run --ip
选项docker network connect
.
如果指定,则在重新启动已停止的容器时重新应用容器的IP地址.如果IP地址不再可用,则容器无法启动.
保证IP地址可用的一种方法是指定
--ip-range
创建网络的时间,并从该范围外选择静态IP地址.这可确保在此容器不在网络上时,不会将IP地址提供给另一个容器.
$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network $ docker network connect --ip 172.20.128.2 multi-host-network container2
另见Jessie Frazelle的博客文章" 所有事物的IP ",并请求docker/docker#19001.
对于目前已发布的Docker版本,这是不可能的(没有很多手工工作在Docker背后),尽管很少需要.
Docker通过使用端口映射在容器中公开网络服务,端口映射可以绑定到主机上的特定IP地址.因此,如果您想在一个Web服务器192.168.10.10
和另一个Web服务器上192.168.10.20
,请首先确保您的主机上有这些地址:
ip addr add 192.168.10.10/24 dev eth0 ip addr add 192.168.10.20/24 dev eth0
然后启动第一个容器:
docker run -p 192.168.10.10:80:80 mywebserver
最后启动第二个容器:
docker run -p 192.168.10.20:80:80 mywebserver
在上面的命令中,该-p
选项用于将端口映射绑定到特定的ip地址.现在,您有两个容器在同一端口(端口80)上提供服务,但在不同的IP地址上.