我的Docker容器可以ping,但无法 curl URL

yvfmudvl  于 2022-11-22  发布在  Docker
关注(0)|答案(1)|浏览(346)

我使用的是Ubuntu服务器22.04下的Docker版本20.10.21。从一周前开始,我的Docker容器无法访问互联网上的公共API(例如Public holidays in France)。它们可以在apt更新和升级完成之前访问。
我认为这是一个Docker网桥网络相关的问题摆在首位,所以我尝试了这个解决方案:My docker container has no internet
然后,我试着

docker network prune

,然后我试图卸载并重新安装Docker。
经过调查,我的诊断是错误的,因为我可以ping公共名称,但我不能 curl 任何URL:

我不明白为什么会突然发生这个问题,我也没有办法解决这个问题。

更新日期:

Docker容器不能 curl 任何URL,但我的Ubuntu主机可以。
对于Docker主机网络,curl工作于给定的API。
另一方面,如果我在Docker Desktop上运行相同的容器,在我的开发计算机上,这工作得很好。

5f0d552i

5f0d552i1#

我终于发现了问题所在,我的主机网络接口的MTU和Docker网络的默认值(1500)不一样。
我检查了网络接口MTU:

ip a | grep mtu

然后,我在/etc/docker/daemon.json中设置了Docker守护进程的MTU:

{
    "mtu" : 1280
}

然后别忘了重新启动Docker:

systemctl restart docker

相关问题