无法从container-registry.oracle.com拉取Oracle标准DB镜像的求助
解决Docker登录container-registry.oracle.com时的域名解析失败问题
调试思路
- 在WSL2的Ubuntu终端执行
ping container-registry.oracle.com,确认域名是否能正常解析。如果ping不通,说明核心问题是域名解析失败;如果能ping通,再排查Docker的网络配置。 - 测试基础网络连通性:执行
ping google.com,如果也无法解析,说明WSL2的整体DNS配置存在问题;如果能正常解析,说明是Oracle镜像仓库域名的解析特殊问题。 - 查看WSL2的DNS配置:执行
cat /etc/resolv.conf,检查其中的DNS服务器地址是否有效。
解决步骤
1. 修复WSL2的DNS解析问题
- 先备份原DNS配置文件:
sudo cp /etc/resolv.conf /etc/resolv.conf.bak - 手动配置公共DNS服务器:
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' sudo bash -c 'echo "nameserver 1.1.1.1" >> /etc/resolv.conf' - 防止WSL2重启后覆盖DNS配置:创建
/etc/wsl.conf文件并添加以下内容:[network] generateResolvConf = false - 重启WSL2:在Windows的命令提示符(CMD)中执行
wsl --shutdown,之后重新打开Ubuntu终端。
2. 配置网络代理(如果Windows使用了代理)
- 在Ubuntu终端中临时设置代理环境变量(替换为你的代理地址和端口):
注:export HTTP_PROXY=http://172.17.0.1:7890 export HTTPS_PROXY=http://172.17.0.1:7890172.17.0.1是WSL2默认的Windows网关地址,你也可以通过Windows的网络适配器查看WSL虚拟网卡的具体地址。 - 配置Docker全局代理:创建或编辑
~/.docker/config.json文件,添加以下内容(替换为实际代理信息):
配置完成后重启Docker服务:{ "proxies": { "default": { "httpProxy": "http://172.17.0.1:7890", "httpsProxy": "http://172.17.0.1:7890", "noProxy": "localhost,127.0.0.1" } } }sudo systemctl restart docker
3. 验证Oracle账号权限
- 登录Oracle官网的Container Registry页面,确认你的账号已被授权拉取Oracle标准DB镜像的权限。
- 用curl测试仓库连通性:
如果返回curl -v https://container-registry.oracle.com/v2/401 Unauthorized,说明域名解析正常,问题出在账号权限或登录信息上;如果仍提示解析失败,继续排查网络配置。
内容的提问来源于stack exchange,提问作者karthick_senthilnathan
相关产品推荐
相关产品推荐

