2017-07-27 11 views
1

私はドッカーで静的IPを割り当てる方法を知っていると思います。docker-pyで-static-ip-to-docker-containerを割り当てる方法

ドッキングウィンドウの実行が-it --rm --net = BR0 --cap-追加= NET_ADMIN --ip = 172.27.153.11 mbussim

問題がドッキングウィンドウでこれをやっている。このような 何かが動作しているようです-py、私はドッカーへの単なるpythonドッカーインターフェイスだと思います。確かに、 "IP":

オプションは= { は "切り離し":あなたはこのような何かが働くと思うだろう

:原則として

は、ドッキングウィンドウ-pyがドッキングウィンドウのリードに従うことをしよう」 172.27.153.11" 、 # "削除":真、 "名前": "mbussim_" + STR(カウント)、 "cap_add": "NET_ADMIN" }}

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

ただし、これは機能しません。多分、これはドッカー・パイではありませんか?

答えて

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があり、mynetインタフェースではeth1が2つあります。 これを達成するための簡単な方法が必要であると確信しています。

関連する問題