我想我知道如何在docker中分配静态ip。 这样的事情似乎有效:
docker run -it --rm --net = br0 --cap-add = NET_ADMIN --ip = 172.27.153.11 mbussim
问题是在docker-py中这样做,我认为它只是docker的python docker接口。
原则上,docker-py尝试跟随docker lead:
你会认为这样的事情会起作用:
options = { "分离":是的, " ip":" 172.27.153.11", #"删除":是的, "姓名":" mbussim _" + str(count), " cap_add":" NET_ADMIN" } }
self.dockcon = self.dockerclient.containers.run(self.dimg, **options)
然而,这不起作用。或许,这不可能是它的docker-py?
答案 0 :(得分:0)
以下似乎有效。 首先创建一个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")
您的容器现在将有2个接口eth0用于默认网络,eth1具有mynet接口。 我相信必须有一种更简单的方法来实现这一目标。