首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在docker-py中分配-static-ip- to -docker-container

如何在docker-py中分配-static-ip- to -docker-container
EN

Stack Overflow用户
提问于 2017-07-27 09:59:52
回答 1查看 845关注 0票数 2

我想我知道如何在docker中分配一个静态ip。像这样的东西似乎起作用了:

docker运行-it --rm --net=br0 --cap-add=NET_ADMIN --ip=172.27.153.11mbussim

问题是在docker-py中这样做,我认为它只是一个到docker的python docker接口。

原则上,docker-py尝试遵循docker的领导:

你可能会认为这样的东西是可行的:

选项={ "detach":True,"ip":"172.27.153.11",#"remove":True,"name":"mbussim_“+str(计数),"cap_add":"NET_ADMIN”}}

代码语言:javascript
运行
复制
       self.dockcon = self.dockerclient.containers.run(self.dimg, **options)

然而,这是行不通的。也许,这是不可能的吧?

EN

回答 1

Stack Overflow用户

发布于 2017-08-17 05:47:44

遵循这一点似乎是有效的。首先创建ip子网:

代码语言:javascript
运行
复制
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
)

现在用通常的方法创建容器:

代码语言:javascript
运行
复制
container = client.containers.run("ubuntu", ["sh", "-c", command()], detach=True)

默认情况下,这会将容器连接到网桥网络。现在将您的容器连接到您的网络,并从子网分配您想要的静态ip。

代码语言:javascript
运行
复制
client.networks.get("mynet").connect(container, ipv4_address="192.168.10.5")

您的容器现在将有两个接口eth0用于默认网络,eth1具有mynet接口。我相信一定有一种更容易的方法来实现这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45340095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档