我一直试图将我的五个公共IP中的一个分配给我的docker容器。由于docker的性质及其用途,似乎这应该是可能的。我发现这个网站我认为解释了我想要做的事情但是自从Docker离开LXC后它已经不再适用了:
http://programster.blogspot.com/2014/06/docker-run-multiple-docker-websites-on.html
我尝试使用我的容器正在使用的ip进行静态NAT连接,但这不起作用。 docker IP不会显示在我的路由器页面中,只显示主机ip。
我的问题是:
是否可以将静态公共IP分配给docker容器,如果是,如何?
和
是否可以在我的路由器配置页面中显示一个泊坞窗IP,如果是这样的话?
感谢。
答案 0 :(得分:1)
Docker 1.10允许您为容器指定静态IP地址 对于它连接的每个网络。
(请注意,为了向后兼容,此功能仅支持自定义网络,并且仅在指定子网时才支持)
例如;
docker network create -d bridge --subnet 172.25.0.0/16 mynet
docker run -d --net=mynet --ip=172.25.3.3 nginx
有关详细信息,请参阅documentation pull request
答案 1 :(得分:0)
我知道有一个docker容器使用静态ip的唯一方法是使用pipework。
假设您的意思是获取DHCP租约并显示在路由器页面上 - Docker没有想到任何事情。我不认为那是#34;码头工人的方式"。如果您使用的是基于systemd的发行版FWIW,那么使用nspawn非常简单。
答案 2 :(得分:0)
可能的解决方案,但我现在无法对其进行测试。如果这不正确,请告诉我。
使用macvlan创建虚拟网络接口:
请参阅https://superuser.com/questions/175475/ip-address-alias-assigned-by-dhcp
命令:
ip link add dev macvlan0 link eth0 type macvlan#macvlan0是v-card的名字(lol)
使用管道连接将容器连接到虚拟网络接口:
请参阅https://github.com/jpetazzo/pipework/#connect-a-container-to-a-local-physical-interface
命令:
pipework macvlan0 $($ containerid)dhcp