Я начал использовать Docker API в python и столкнулся с проблемой выполнения времени.
При запуске следующего кода создание одной сети занимает 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 09: 49: 05,352 - root - INFO - *** Создание мостов:
2018-09-05 09: 49: 05,352 nw_0
2018-09-05 09: 49: 20,420 nw_1
2018-09-05 09: 49: 35,503 nw_2
2018-09-05 09: 49: 50,557 nw_3
2018-09-05 09: 50: 05,616 nw_4
...
2018-09-05 09: 53: 51 693 nw_19
Странно то, что когда я запускаю ту же команду прямо внутри терминала, используя:
Докерская сеть создает nw_simu -d мост --opt com.docker.network.bridge.enable_icc = true --opt com.docker.network.bridge.name = nw_1 --subnet = 10.0.0.0 / 24 --ip -диапазон = 10.0.0.0 / 24 - шлюз = 10.0.0.254
работает мгновенно. Итак, мой вопрос:
У некоторых из вас, замечательных людей, была такая же проблема при использовании этого API?
Что я могу сделать, чтобы ускорить процесс? (Я уже реализую подпрограммы для параллельного запуска)
Любые советы приветствуются!
Версии: Python 2.7.15rc1, Docker 18.06.1-ce, Ubuntu 18.04.1 LTS