You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Cloud实例无法访问Docker Registry,求排查方案

排查Oracle Cloud私有子网实例Podman拉取镜像超时的步骤

你遇到的错误日志如下:

Trying to pull docker.io/library/alpine:latest...
Error: initializing source docker://alpine:latest: pinging container registry registry-1.docker.io: Get "https://registry-1.docker.io/v2/": dial tcp 3.216.34.172:443: i/o timeout

按以下步骤逐一排查:

  • 验证NAT网关配置有效性

    • 登录实例执行curl -v https://registry-1.docker.io/v2/,直接测试与registry的连通性,排除Podman本身的干扰
    • 进入OCI控制台,确认NAT网关已关联实例所在的私有子网,且网关处于运行状态
    • 检查子网绑定的路由表:必须存在一条目标为0.0.0.0/0、下一跳指向NAT网关的路由规则,且规则为启用状态
  • 检查实例本地网络配置

    • 查看DNS配置:执行cat /etc/resolv.conf,确认包含有效DNS服务器(如OCI内置的169.254.169.254或公共DNS8.8.8.8)
    • 测试DNS解析:执行nslookup registry-1.docker.io,确认能解析出正确IP(如错误日志中的3.216.34.172),解析失败则优先修复DNS
    • 测试端口连通性:用nc -zv registry-1.docker.io 443或telnet registry-1.docker.io 443,确认TCP 443端口能建立连接
  • 核对安全组与网络安全组(NSG)规则

    • 实例关联的安全组:必须允许出站TCP 443(HTTPS)和UDP 53(DNS)流量到0.0.0.0/0,别只关注入站规则
    • 子网或实例绑定的NSG:同样需要放行上述出站流量,NSG规则优先级高于安全组,若有拒绝规则会直接阻断
  • 排查Podman本地配置

    • 检查代理设置:执行podman info | grep -i proxy,若存在错误的代理配置,会导致无法正常访问公网registry
    • 重置registry配置:删除/etc/containers/registries.conf.d/下的自定义配置文件,恢复默认设置后重新尝试拉取
  • 确认OCI租户网络限制

    • 检查租户是否有出站流量配额限制:进入OCI控制台租户设置,查看是否存在网络流量上限导致无法访问
    • 确认实例无公网IP冲突:私有子网实例不应分配公网IP,若误分配会导致路由异常,需解绑公网IP

内容的提问来源于stack exchange,提问作者Todd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:15:51