2017-07-27 85 views
1

我想我知道如何在docker中分配靜態ip。 這樣的事情似乎工作:如何在Docker-py中分配-static-ip-to-docker-container

搬運工運行 - 它--rm --net = BR0 --cap加= NET_ADMIN --ip = 172.27.153.11 mbussim

的問題是碼頭工人做這個-py,我認爲這只是docker的一個python docker接口。

原則,搬運工-PY試圖跟隨搬運工鉛:

你可能會認爲像這樣的工作:

選項= { 「分離」:的確, 「IP」:「 172.27.153.11" , # 「刪除」:的確, 「名」: 「mbussim_」 + STR(計數), 「cap_add」: 「NET_ADMIN」 }}

 self.dockcon = self.dockerclient.containers.run(self.dimg, **options) 

但是,這是行不通的。也許,這是不可能的docker-py?

回答

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") 

您的容器現在有兩個接口eth0用於默認網絡,而eth1用於mynet接口。 我相信肯定有一個更簡單的方法來實現這一點。