使用docker python API在特定IP上运行容器

时间:2018-04-25 17:27:41

标签: python api docker

如果我从控制台运行容器,我执行以下命令:

docker run -d --name iperf_srv --network mynet --ip 10.195.10.10 astotal/iperf3 -s

然后我让iperf收听10.195.10.10 ip地址。

如何使用python API执行相同的操作?

有代码在ipam池上运行IP上的容器,但实际上并不是我需要的

import docker 

doc = docker.from_env()
srv_pool=docker.types.IPAMPool(subnet='10.195.10.0/24',iprange='10.195.10.0/24')

srv_ipam=docker.types.IPAMConfig(pool_configs=[srv_pool])

doc.networks.create('uplink', driver='macvlan', options={'parent':'eth2.3200'},ipam=srv_ipam)

srv=doc.containers.run('astotal/iperf3', '-s', network='uplink', detach=True, name='iperf_server')

1 个答案:

答案 0 :(得分:0)

我通过几个步骤找到的最佳解决方案:

srv = doc.containers.create('astotal/iperf3', '-s', detach=True, name='iperf_server')
doc.networks.get("uplink").connect(srv, ipv4_address="10.195.10.11")
srv.start()