如何在docker-py中分配-static-ip-to-docker-container

时间:2017-07-27 01:59:52

标签: dockerpy

我想我知道如何在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?

1 个答案:

答案 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接口。 我相信必须有一种更简单的方法来实现这一目标。