我有一台 CentOS 7 物理主机(A)在我的 LAN (192.168.0.0/16) 上。SElinux 已禁用,firewalld 也已禁用。这是我对安装默认值所做的唯一更改。
我有其他主机(二)在那个局域网上;(二)有 www、ssh、icmp 等服务。
在这一步,我可以玩(二)从(A):
$ ping *(B)*
... success ...
$ curl google.com
... success ...
$ curl *(B)*
... success ...
$ mysql *(B)*
... success ...
一切进展顺利。
现在,我安装了 Docker Community(A):
$ yum check-update
$ curl -fsSL https://get.docker.com/ | sh
$ systemctl start docker
现在再次执行这些命令的结果(A):
$ ping *(B)*
... success ...
$ curl google.com
... success ...
$ curl *(B)*
... Recv failure: Connection reset by peer ...
$ mysql *(B)*
... Connection reset by peer ...
因此,基本上,一旦 Docker 设置并激活,来自(A)(主机或 docker 容器)连接到我的 LAN 失败。此类错误可能是防火墙问题,因为来自(二)到(A)仍然可用。
但是我检查了 iptables(A)拒绝规则或策略错误,什么也没有。我甚至彻底清理了 iptables(A),问题仍然存在。
如果所有防火墙/安全系统都被禁用或没有限制规则,并且有宽松的策略,我就不明白问题出在哪里,也不知道我必须在 CentOS 系统上检查哪里才能解决问题。
能否请你帮忙 ?
答案1
这听起来像是 docker 桥接 IP 可能与网络上的 IP 发生冲突。如果这是完全干净的安装,并且之前没有 /var/lib/docker,则查看调整docker 守护进程中的设置。如果显示您需要的 IP 范围,并且(或)显示 docker0 使用的 IP 范围也被其他接口或网关使用bip
,您就会知道这是一个问题。要更新设置,请参阅docker network inspect bridge
netstat -nr
ip r
bip
https://docs.docker.com/engine/userguide/networking/default_network/custom-docker0/