如何分配静态公共IP到docker集装箱
有什么办法将static public IP
分配给容器。 所以容器有公共IP。 客户端可以使用IP访问容器。
对于目前发布的Docker版本,这是不可能的(Docker背后没有大量的手工工作),尽pipe它很less有必要。
Docker通过使用端口映射公开容器中的networking服务,端口映射可以绑定到主机上的特定IP地址。 所以,如果你想有一个networking服务器在192.168.10.10
和另一个networking服务器在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地址上。
现在,Docker 1.10和新docker run --ip
选项现在可以在docker network connect
看到。
如果指定,则在重新启动停止的容器时将重新应用容器的IP地址。 如果IP地址不再可用,则容器无法启动。
确保IP地址可用的一种方法是在创buildnetworking时指定
--ip-range
,并从该范围外select静态IP地址。 这可确保当此容器不在networking上时,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
另见杰西弗拉泽尔的博客文章“ IPs for all things ”,并拉请求docker/docker#19001 。
- 使用docker和django公开8000端口
- 如何从容器执行主机的Docker命令?
- Com.github.dockerjava.api.exception.DockerClientException:证书path(DOCKER_CERT_PATH)'/root/.docker/certs'不存在一般性讨论
- Gitlab亚军在ubuntu服务器上抛出错误(kern.log)
- 如何创build一个可变端口的selenium/独立铬图像(4444)
- 为什么我不能在Docker中运行PID 1时CTRL-C睡眠无限
- 在docker运行但不是在docker启动时产生CMD效果
- 如何使用docker-py列出给定图像的标签?
- 无法在Windows 10上从arquillian多维数据集启动Docker容器