如何为所有新Docker网络设置基本IP地址



当我创建一个新网络时,Docker会使用172.255.255.255(172.17.1.0,172.18.1.0等)创建它。但这可能与外部地址相抵触,因为我网络中的所有机器都有相同的前缀(172.255.255.255)

是否有一种方法可以配置Docker在创建新网络的基本子网地址?

[更新]我正在自动创建和删除网络,因此,我无法设置-subnet选项(因为我不知道使用哪些地址)。我需要Docker动态管理地址池,就像它管理Ingress网络(自动分配和修剪子网)一样。实际上,我需要的只是自定义入口基础地址!

docker 18.06引入--default-address-pool选项。使用它,您可以指定用户定义的网络默认使用的地址范围,而不是标准172.x您可以查看已实施和讨论功能的拉动请求以获取更多信息:Moby/29376,Moby/36054,Moby/36396,

您可以将参数作为命令行参数设置为Docker守护程序:

--default-addr-pool

此标志指定全局范围网络的默认子网池。 格式示例是--default-addr-pool 30.30.0.0/16 --default-addr-pool 40.40.0.0/16

/etc/docker/daemon.json

{
  "default-address-pools": [
    {"base":"172.80.0.0/16","size":24}
  ]
}

默认网络命名为桥。这是使用172范围的设置。

您需要做的是创建自己的桥梁网络。

$ docker network create -d bridge my_bridge
(use the --ip-range option)

然后,您可以将容器添加到该网络。

$ docker run -d --net=my_bridge --name db training/postgres

https://docs.docker.com/engine/tutorials/networkingcontainers/

最新更新