docker如何将容器设置为仅使用指定范围内的ips

Posted

技术标签:

【中文标题】docker如何将容器设置为仅使用指定范围内的ips【英文标题】:docker how to set containers to only use ips within a sepcified range 【发布时间】:2017-05-04 09:55:13 【问题描述】:

在 docker 中如何设置以便创建的任何容器都有一个 ip 在一个范围内。

例如,我会为所有容器分配一个从 172.20.x.x 开始的 ip

在我当前的实例上

我已经默认创建了这些界面

docker0 是 ip 地址 172.17.0.1

br0-52fxxx ip地址172.18.0.1

我的容器的 IP 地址从 172.18.x.x 开始

关于使用 --bip=CIDR 的建议,这不是设置 docker0。 docker0 是问题吗,因为即使在我的示例中我的 docker0 是 172.17.0.1 我的容器开始 172.18.x.x

我相信我需要 br0 接口为 172.20.0.1 才能影响所有容器 从 172.20.x.x 开始分配 ips

我认为问题是如何通过 docker daemon 自动将 br0 接口设置为 172.20.0.1?

【问题讨论】:

你试过什么?提供一些例子 您使用的是哪个版本的 docker,以及哪个操作系统? centos 7 - docker 17.03 ce 我很确定容器应该默认在 docker0 接口上启动 【参考方案1】:

docker 守护进程的--bip flag 允许您更改 docker0 的 CIDR 配置。

--bip=CIDR:使用标准 CIDR 表示法为 docker0 网桥提供特定的 IP 地址和网络掩码。例如:192.168.1.5/24。

对于您的范围,这看起来像这样:--bip=172.20.0.0/16

【讨论】:

请查看添加的更多信息

以上是关于docker如何将容器设置为仅使用指定范围内的ips的主要内容,如果未能解决你的问题,请参考以下文章

docker 容器修改端口

Docker-端口映射

如何在 Docker 容器中设置静态 IP 地址?

docker-网络模式

Docker 1.10 容器在局域网中的 IP

Docker高级管理(实例演示!!!)