我想我知道如何在docker中分配一个静态ip。像这样的东西似乎起作用了:
docker运行-it --rm --net=br0 --cap-add=NET_ADMIN --ip=172.27.153.11mbussim
问题是在docker-py中这样做,我认为它只是一个到docker的python docker接口。
原则上,docker-py尝试遵循docker的领导:
你可能会认为这样的东西是可行的:
选项={ "detach":True,"ip":"172.27.153.11",#"remove":True,"name":"mbussim_“+str(计数),"cap_add":"NET_ADMIN”}}
self.dockcon = self.dockerclient.containers.run(self.dimg, **options)
然而,这是行不通的。也许,这是不可能的吧?
发布于 2017-08-17 05:47:44
遵循这一点似乎是有效的。首先创建ip子网:
ipam_pool = docker.types.IPAMPool(
subnet='192.168.0.0/16',
gateway='192.168.0.254'
)
ipam_config = docker.types.IPAMConfig(
pool_configs=[ipam_pool]
)
client.networks.create(
"mynet",
driver="bridge",
ipam=ipam_config
)
现在用通常的方法创建容器:
container = client.containers.run("ubuntu", ["sh", "-c", command()], detach=True)
默认情况下,这会将容器连接到网桥网络。现在将您的容器连接到您的网络,并从子网分配您想要的静态ip。
client.networks.get("mynet").connect(container, ipv4_address="192.168.10.5")
您的容器现在将有两个接口eth0用于默认网络,eth1具有mynet接口。我相信一定有一种更容易的方法来实现这一点。
https://stackoverflow.com/questions/45340095
复制相似问题