我正在使用docker run本地测试我的容器。我发现它无法连接到我公司网络中的某个主机,失败并显示“没有到主机的路由”。原来这台主机的IP地址是172.18.xx,与Docker的网络重叠。
那么,有没有办法更改docker run配置,使其不声明此特定 IP 范围?我已经尝试更改Docker 守护程序配置文件中的bip和default-address-pools选项,但这并没有解决问题。
如果 /etc/docker/daemon.json 中不存在,则创建一个 docker 配置文件
在 daemon.json 中添加一个条目,其中包含运行 docker bridge0 的子网(您可以在此处添加所需的子网),在“bip”条目下,例如 -“bip”:“192.168.1.5/24”
重启 docker 服务: sudo systemctl restart docker
注意:注意不要在子网中使用环回地址,即以 0 结尾的 IP,如 192.168.1.0/24 bridge0 子网应该有足够的地址用于机器上使用默认网络的所有容器。skyformation 不使用默认网络。
通过运行验证它是否有效ifconfig docker0 | grep -Po '(?<=inet )[\d.]+'。它应该像这样打印出在 daemon.json 的“bip”示例中指定的 IP 地址
{ "bip": "192.168.1.5/24" }
Run Code Online (Sandbox Code Playgroud)
现在在您的 docker-compose 文件中,添加网络选项卡。
networks:
isolated_nw:
driver: bridge
ipam:
config:
- subnet: 192.167.0.0/16
Run Code Online (Sandbox Code Playgroud)
现在重启你的 docker 容器,通过 grepping 容器的 IP 地址来验证。它应该按预期工作。
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |