我开始在python中使用Docker,并遇到了时间执行问题。运行以下代码时,构建单个网络需要15秒。
def createDockerNetwork():
nb_nw = 20
logging.info("*** Creating bridges: ")
for i in range(0,nb_nw):
logging.info(" - bridge: nw_"+str(i))
base = '10.'+str(i/255)+'.'+str(i%255)
sbnet = base + '.0/24'
iprange = base + '.0/24'
gw = base + '.254'
options = dict([('com.docker.network.bridge.enable_icc','true'), ('com.docker.network.bridge.name','br_'+str(i))])
ipam_config = docker.types.IPAMPool(subnet=sbnet, iprange=iprange, gateway=gw)
try:
client.networks.create('nw_'+str(i), driver='bridge', options=options, ipam = ipam_config)
except docker.errors.APIError as error:
logging.error(" Error while creating bridge no:"+str(i)+" : \n ---> {0}".format(error))
return 0
2018-09-05 :49:05:352- root - INFO -*创建桥梁: 2018-09-05 :49:05,352 nw_0 2018-09-05 :49:20,420 nw_1 2018-09-05 :49:35,503 nw_2 2018-09-05 :49:50,557 nw_3 2018-09-05 :50:05 616 nw_4 ..。 2018-09-05 :53:51,693 nw_19
奇怪的是,当我在终端中直接运行相同的命令时,使用:
docker网络创建nw_simu -d桥-选择com.docker.network.bridge.enable_icc=true -选择com.docker.network.bridge.name=nw_1 -子网=10.0.0.0/24-ip-范围=10.0.0.0/24-网关=10.0.254
它马上就能运行。所以我的问题是:
你们中的一些人在使用这个API时也有同样的问题吗?我能做些什么来加速这个过程吗?(我已经在实现例程,以便以并行的方式运行)
任何小费都要感谢!
版本:Python2.7.15rc1,Docker 18.06.1-ce,Ubuntu18.04.1 LTS
发布于 2018-09-06 07:47:07
事实证明,我在代码中犯了一个错误,正确的做法如下:
ipam_pool = docker.types.IPAMPool(subnet=sbnet, iprange=iprange, gateway=gw)
ipam_config = docker.types.IPAMConfig(pool_configs=[ipam_pool])
try:
client.networks.create('nw_'+str(i), driver='bridge', options=options, ipam = ipam_config)
except ..... as error:
因此,它工作正常。
https://stackoverflow.com/questions/52180512
复制相似问题