s.k*_*s.k 5 docker docker-compose docker-network
我有一个天真的问题,但我注意到通过使用一些 Compose 文件,docker 以表单172.x.0.1为我的项目的所有网络创建网关地址。x通常总是(?)递增(除非重新启动docker服务),从18开始(因为默认桥接网络使用17)直到......一些我在文档中无法弄清楚的数字。之后,docker 跳转到 形式的网关192.168.y.1,在这里,我再次无法弄清楚ydocker 可以使用哪些值范围,以及它在所有这些范围中选择网关地址的策略是什么。
我的强烈印象是它只选择私有IP地址。但我还没有看到诸如 之类的地址10.a.b.c。
任何人都可以向我解释一下,最好有一些官方资源,docker 在创建桥接网络时实际上如何选择网关地址(特别是在 Compose 文件的情况下),docker 可用的所有地址池是什么(以及是否可以手动定义或限制这些范围)?
我查阅的一些页面没有取得太大成功:
https://docs.docker.com/network/
https://docs.docker.com/network/bridge/
https://docs.docker.com/network/network-教程独立/
https://docs.docker.com/compose/networking/
https://github.com/compose-spec/compose-spec/blob/master/spec.md
似乎在那一小段代码中隐藏着一些“解释”:
var (
// PredefinedLocalScopeDefaultNetworks contains a list of 31 IPv4 private networks with host size 16 and 12
// (172.17-31.x.x/16, 192.168.x.x/20) which do not overlap with the networks in `PredefinedGlobalScopeDefaultNetworks`
PredefinedLocalScopeDefaultNetworks []*net.IPNet
// PredefinedGlobalScopeDefaultNetworks contains a list of 64K IPv4 private networks with host size 8
// (10.x.x.x/24) which do not overlap with the networks in `PredefinedLocalScopeDefaultNetworks`
PredefinedGlobalScopeDefaultNetworks []*net.IPNet
mutex sync.Mutex
localScopeDefaultNetworks = []*NetworkToSplit{{"172.17.0.0/16", 16}, {"172.18.0.0/16", 16}, {"172.19.0.0/16", 16},
{"172.20.0.0/14", 16}, {"172.24.0.0/14", 16}, {"172.28.0.0/14", 16},
{"192.168.0.0/16", 20}}
globalScopeDefaultNetworks = []*NetworkToSplit{{"10.0.0.0/8", 24}}
)
Run Code Online (Sandbox Code Playgroud)
这是我能想到的最好的,因为我还没有找到任何关于此的官方文档......
似乎也可以通过创建一个/etc/docker/daemon.json包含以下内容的文件来强制 Docker 使用一系列允许的子网:
{
"default-address-pools": [
{"base": "172.16.0.0/16", "size": 24}
]
}
Run Code Online (Sandbox Code Playgroud)
也可以指定多个地址池:
{
"default-address-pools": [
{"base": "172.16.0.0/16", "size": 24},
{"base": "xxx.xxx.xxx.xxx/yy", "size": zz} // <- additional poll can be stacked, if needed
]
}
Run Code Online (Sandbox Code Playgroud)
docker完成后不要忘记重新启动服务:
$ sudo service docker restart
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请访问: https://capstonec.com/2019/10/18/configure-custom-cidr-ranges-in-docker-ee/
| 归档时间: |
|
| 查看次数: |
3431 次 |
| 最近记录: |