Docker容器无法访问网络及丢包严重问题
智算云技术支持 – 发表于:2023年06月19日 14:30:30
智算云平台上创建的云服务器,在系统内安装Docker容器后无法访问网络及丢包严重的问题,可参考如下方式解决:
1. 网络模式设置为 --network=bridge 时无法访问外网,网络模式设置为 --network=host 时可以访问外网。
-
现象:测试 ping 8.8.8.8 bridge 模式无法ping通,host模式可以ping通。
-
问题原因:此问题一般是容器镜像内未安装网络服务导致bridge模式分配不到IP,而host模式不需要分配IP 直接用的是主机的网络。
-
解决方法:在容器镜像内安装网络服务工具(可以在host模式联网安装),执行如下命令进行安装
dpkg -i reset-authentication\_1.0.4-0\_amd64.deb
-
安装后通过修改后的容器创建镜像。
-
使用新镜像开启新容器后,可以正常访问外网。
2. 外网能通,但是无法联网下载软件,http或https网站无法访问。
- 测试:
curl [https://www.baidu.com](https://www.baidu.com)
-
一直卡住无输出。
-
ping 8.8.8.8 能通。
-
在宿主机执行 ip addr 或者 ifconfig 查看网卡mtu值.
-
发现网卡的mtu值默认是1442,而容器的网卡的mtu值默认是1500。
- 修改Docker服务配置文件:
vim /usr/lib/systemd/system/docker.service
- 配置文件如下位置,增加 --mtu=1442。
- 执行如下命令重新加载配置文件并重启Docker容器生效:
systemctl daemon-reload
systemctl restart docker
- 开启新容器恢复正常。