¶ docker-compose 启动的容器 IP 与内网 IP 段冲突,导致容器占用了内网IP
更新时间: 2023-08-18 15:11:05
¶ 原因:
Docker 默认使用某个特定的 IP 地址范围来为其容器分配 IP 地址。如果这个范围与您的内部网络 IP 地址范围重叠,就可能导致 IP 地址冲突。
¶ 解决方法:
可以修改 /etc/docker/daemon.json (如此文件不存在,请先自行创建)文件,在文件中增加以下内容累自定义默认地址池 bridge,然后重启 docker。
{
"default-address-pools": [
{
"base": "172.17.0.0/16",
"size": 24
}
]
}
"default-address-pools"
:这是一个包含单个对象的数组。这个对象定义了默认的地址池配置"base": "172.17.0.0/16"
:这是默认地址池的基础 IP 地址和子网掩码。在这种情况下,地址池的 IP 地址范围为 172.17.0.0 到 172.17.255.255。这个范围通常用于 Docker 网络,例如创建新的自定义桥接网络时"size": 24
:这定义了地址池中每个子网的大小。在这种情况下,每个子网将具有 24 个连续的 IP 地址。子网掩码为 /24,这意味着子网的 IP 地址范围为 172.17.x.0 到 172.17.x.255,其中 x 是子网的索引- 这个配置文件可能用于一个网络相关的应用或服务,如 Docker。在这种情况下,它会影响 Docker 创建新网络时使用的默认地址池