繁体   English   中英

更改docker bridge的IP地址池

[英]Change IP address pool of docker bridge

我想为docker容器的子网设置自定义IP池。 为此,我按照这个停止的docker0守护进程,删除了docker0接口并使用自定义NetworkId重新创建

systemctl stop docker
ip link del docker0

使用NetworkManager重新创建docker0虚拟网桥接口并将其打开。

ant@ant ~> nmcli con up <UID>
ant@ant ~> ip addr
111: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 3e:ff:1b:ce:e4:a4 brd ff:ff:ff:ff:ff:ff
    inet 172.20.0.1/20 brd 172.20.15.255 scope global docker0
       valid_lft forever preferred_lft forever

现在当我再次启动docker守护进程时,

ant@ant ~> systemctl start docker
ant@ant ~> ip addr
111: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 3e:ff:1b:ce:e4:a4 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

我设置的子网是172.20.0.1/20但是一旦启动docker0守护程序, docker0接口的子网就会更改为172.17.0.1/16 我在局域网中有一些我希望访问的私有IP,它位于该子网中。

有没有更好的方法来配置网桥接口?

Jordan的答案创建了一个子网工作,然后在容器上运行应用程序时指定该子网工作。 这有助于限制运行容器时使用的IP池。

但是,限制docker0守护程序创建的docker0虚拟桥接口的IP池没有任何帮助。 我正在寻找的答案如下:

Docker运行一个管理容器的守护进程。 该守护进程创建一个接口docker0 ,默认情况下配置为使用172.17.0.1/16子网进行操作。 因此,我们需要配置守护程序以使用所需的子网。

dockerd用于运行dockerd守护程序。 它有--bip bridge IP选项(见dockerd )。

dockerd --bid=172.20.0.1/20

但是大多数系统使用各自的服务管理器运行docker来实现这一点。 在这种情况下, /etc/docker/daemon.json/etc/docker/daemon.json有一个/etc/docker/daemon.json守护程序配置文件。 Docker linux守护进程配置如果它还不存在则创建daemon.json并添加bip

{
    "bip":"172.30.0.1/20"
}

通过创建特定的桥接容器网络,您应该能够使用此命令定义IP地址。 文档是一个很好的入口点。

$ docker network create --driver bridge --subnet 172.20.0.1/20 subnet
$ docker run --name app --network subnet <container>

您的所有容器现在应该在所选子网中具有IP地址。

此外, 官方文档描述了如何创建自己的桥接连接。

如果更改docker0网桥的子网,它将保持不变。 对于特定的ip目的,使用新的网络创建。 docker network create --subnet = 172.20.0.1 / 20 foo在该网络中运行容器之后。 docker run -itd --net foo image_name假设您要为容器指定特定的ip。 使用docker run -itd --net foo --ip 172.20.0.12 image_name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM