我正在使用 Ubuntu 版本20.04.3 LTS
(内核5.4.0-96-generic
)和 Docker 的专用服务器上运行20.10.7, build 20.10.7-0ubuntu5~20.04.2
。该系统是全新安装。
我有一个用于我的服务之一,它使用和Dockerfile
拉入一些库。中间容器之一总是无法连接到 Internet,出现 DNS 或 TCP 超时错误。哪个容器失败是完全随机的。apt
go get
另请注意,问题不在于某个特定服务,我尝试构建一个在 NodeJS 上运行的完全不同的服务,但npm install
失败并出现相同的错误
今天我也遇到了我的 Nginx 容器无法访问的问题。与它的所有连接都导致超时错误。
使用 docker 网络的容器之间的连接也无法正常工作。
运行sudo systemctl restart docker
暂时解决了这个问题,但它会重新出现一两个构建线。当我使用网络而不是默认桥接网络构建时host
,问题就消失了,这就是我怀疑桥接配置错误的原因。
我试过重新安装 Docker,重置 iptables 和桥接配置,设置不同的 DNS 服务器,但无济于事。泊坞窗日志文件显示没有错误。
这个问题的原因可能是什么?
更新:
我禁用了 UFW,但没有成功。这是构建超时期间我的 dmesg 日志中的转储,也许这有助于确定原因:
[758001.967161] docker0: port 1(vethd0c7887) entered blocking state
[758001.967165] docker0: port 1(vethd0c7887) entered disabled state
[758001.967281] device vethd0c7887 entered promiscuous mode
[758002.000567] IPv6: ADDRCONF(NETDEV_CHANGE): veth7e3840a: link becomes ready
[758002.000621] IPv6: ADDRCONF(NETDEV_CHANGE): vethd0c7887: link becomes ready
[758002.000644] docker0: port 1(vethd0c7887) entered blocking state
[758002.000646] docker0: port 1(vethd0c7887) entered forwarding state
[758002.268554] docker0: port 1(vethd0c7887) entered disabled state
[758002.269581] eth0: renamed from veth7e3840a
[758002.293056] docker0: port 1(vethd0c7887) entered blocking state
[758002.293063] docker0: port 1(vethd0c7887) entered forwarding state
[758041.497891] docker0: port 1(vethd0c7887) entered disabled state
[758041.497997] veth7e3840a: renamed from eth0
[758041.547558] docker0: port 1(vethd0c7887) entered disabled state
[758041.551998] device vethd0c7887 left promiscuous mode
[758041.552008] docker0: port 1(vethd0c7887) entered disabled state