我有一个运行Docker19.03的CentOS 7.2主机。所有码头集装箱都在一个桥梁网络中(172.18.0.0/16)。在主机上,我可以打开网关(172.18.0.1),但不能打开我的容器(172.18.0.2和172.18.0.3)。从我的容器,我也可以平网关,但我的主机。
网桥网络基本上具有默认配置。但我还遗漏了什么吗?
发布于 2020-03-28 04:56:47
Docker使用iptables和一个名为br_netfilter的内核模块来管理容器间网络。当Docker守护进程启动时,它会创建操作所需的各种IPTables规则。每次设置一个新容器时,都会创建和操作其他规则。如果iptable处于一种奇怪的状态,已经被您修改,或者没有安装,这可能会导致您的问题。
我在上面提到过br_netfilter。以类似的方式运作。您可以确认内核模块是用lsmod命令加载的。例:lsmod | grep br_netfilter。如果它没有加载,那么您可以用not探测加载它。例:modprobe br_netfilter。如果它不可用,那么内核模块就不会安装在编译好的内核中。如果您成功地运行了modprobe来加载模块,那么您将需要修改/etc/modprobe.conf或在/etc/modprobe.d中删除一个文件,以确保内核模块在重新启动之间的持久性。
https://stackoverflow.com/questions/60894640
复制相似问题