Docker容器访问内部registry报port 443: No route to host如何解决?
问题现象
- 访问公司内部镜像registry时,进入容器执行curl对应URL返回
port 443: No route to host - 容器所在宿主机可正常访问该registry
- 启动容器时添加
--network host参数仍无法解决问题
根因说明
该问题由Docker Desktop启用的Kubernetes功能导致的网络冲突引起。执行ifconfig排查时可发现异常的cni0网络接口,该接口为Kubernetes的CNI网络虚拟接口,其默认路由规则会和内部registry的访问路由产生冲突,即使使用host网络模式也无法绕开该冲突。
解决步骤
- 打开Docker Desktop设置页面,找到Kubernetes选项,关闭启用Kubernetes的开关
- 点击「Apply & Restart」后,完全退出Docker Desktop客户端,再重新打开程序,仅点击内置的重启按钮无法生效
- 重启完成后执行
ifconfig确认cni0接口已消失,此时容器即可正常访问内部registry
内容的提问来源于stack exchange,提问作者Yolof
相关产品推荐
相关产品推荐

