AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1091502
Accepted
Twometer
Twometer
Asked: 2022-01-29 09:27:20 +0800 CST2022-01-29 09:27:20 +0800 CST 2022-01-29 09:27:20 +0800 CST

使用网桥时 Docker 网络超时

  • 772

我正在使用 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 超时错误。哪个容器失败是完全随机的。aptgo 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
linux ubuntu docker docker-compose
  • 2 2 个回答
  • 2259 Views

2 个回答

  • Voted
  1. Ole Tange
    2022-01-29T13:06:03+08:002022-01-29T13:06:03+08:00

    如果你有这些dmesg:

    [15300.615904] neighbour: arp_cache: neighbor table overflow!
    

    尝试这个:

    sudo sysctl -w net.ipv4.neigh.default.gc_thresh3=30000
    sudo sysctl -w net.ipv4.neigh.default.gc_thresh2=20000
    sudo sysctl -w net.ipv4.neigh.default.gc_thresh1=10000
    
    • 1
  2. Best Answer
    Twometer
    2022-02-13T17:53:57+08:002022-02-13T17:53:57+08:00

    最后,经过大量挖掘,我发现了问题:

    第一个请求终止后,我的docker0网络丢失了其 IPv4 地址,因此无法与 Internet 的其余部分通信。

    GitHub上的这个问题评论终于为我解决了这个问题:moby#40217:我systemd-networkd正在管理docker0网络,并且以某种方式触发了运营商丢失检查,然后导致networkd删除了IPv4。docker0将和网络标记br-*为非托管最终使一切正常

    • 0

相关问题

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve