2017-10-04 16 views
8

"mynet" adlı bir ağım var ve 192.168.23.2'ye bağlı bir IP adresiyle bir kapsayıcı başlatmak istiyorum.docker-py: Bir kapsayıcıya nasıl IP adresi bağlama

ben başlıyorum kodudur:

import docker 
c = docker.from_env() 
c.containers.run('containername', 'sh some_script.sh', network='mynet') 

Buradan ne yapacağım? Etkin olarak docker run'dan --ip seçeneğine eşdeğer arıyorum.

cevap

2

Sen ona bir konteyneri bir ağ oluşturmak ve bağlamak gerekir:

container = c.containers.run('containername', 'sh some_script.sh') 

ipam_pool = docker.types.IPAMPool(
    subnet='192.168.23.0/24', 
    gateway='192.168.23.1' 
) 
ipam_config = docker.types.IPAMConfig(
    pool_configs=[ipam_pool] 
) 
mynet= c.network.create(
    "network1", 
    driver="bridge", 
    ipam=ipam_config 
) 

ip = {"ipv4_address": "192.168.23.2"} 
mynet.connect(container,ip) 
+0

yalnız bu ekleme yardımcı görünmüyor. https://gist.github.com/markzz/3f25719a37f85bc851aa10e3b9c0ee5f – markzz

+0

Bu, python yüklü bir pakette nasıl değişiklik yapılacağı konusunda yardımcı olur: https://stackoverflow.com/questions/23075397/python-how-to-edit-an- Kurulmuş paket – anhlc

+0

Bir pakette değişiklik yapmanın farkındayım ... – markzz