安装URLOS后无法访问或者访问报错
如果安装URLOS之后无法访问,或者访问报错,可能是容器内部无法访问外部网络所造成。
判断容器内部是否能访问外部网络的方法
使用命令方式进入容器内部:
docker exec -it urlos bash
进入后,使用curl命令访问www.baidu.com:
curl www.baidu.com
如果返回网页内容,说明可以访问外部网络;如果返回curl: (56) Recv failure: Connection reset by peer
,说明无法访问外部网络。
如何排查和解决问题
容器内部无法访问外部网络的原因有很多,大部分原因是主机对docker的支持并不完全,这时能换主机则换主机;也有部分情况是主机商对主机网卡配置的问题,下面所提到的情况就后者。
一般情况下主机网卡mtu默认值是1500,docker的虚拟网卡mtu默认值也是1500,然而部分主机厂商将mtu值改成了1450,这就导致了docker容器内部无法访问外部网络了。
查看网卡mtu值的命令ifconfig
,如下图,两个mtu值不同
如果您的主机也是这种情况,建议与主机厂商取得联系,要求其修改网卡mtu值为1500。如果无法修改主机网卡mtu值,我们提供一个临时解决方案,修改docker配置文件:
以ubuntu为例,编辑daemon.json文件
vim /etc/docker/daemon.json
在其内容中增加“mtu”: 1450
然后重启docker
service docker restart
重启之后,执行ifconfig
查看
两个值保持了一致,这样就能正常使用URLOS了。
需要注意:如果重新安装URLOS或者升级URLOS,则会重置docker网卡mtu值,须再次修改daemon.json文件。