中国docker 无法pull的问题

Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 4.78.139.50:443: connect: connection refused
linux

背景

笔者在centos 7,需要部署nuxt ,然而使用yum 安装node16,就是不能正常运行,然而本地,别的环境都可以,后来发现node版本太低原因,苦于使用编译安装node20成本太大,就索性使用docker 安装node20
然而发现docker 也是不好安装,哎,一声叹息

Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 4.78.139.50:443: connect: connection refused

解决docker pull无法问题有两个方案

1. 使用镜像

vim /etc/docker/daemon.json

类似这样的镜像

{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}

然后执行

 systemctl restart docker

缺点

  1. 无法保证镜像源和官方的源同步,存在差异
  2. 目前中国大部分的源都不稳定,随时都会挂

优点

没有成本

2. 使用代理,笔者最终选择这种方案

vim /etc/systemd/system/docker.service.d/http-proxy.conf

没有文件夹,就创建,以下的内容需要替换你的代理

#写入内容例如:
[Service]
Environment="HTTPS_PROXY=http://10.8.0.10:3128"
Environment="HTTP_PROXY=http://10.8.0.10:3128"
#如有本地镜像源需要再次过滤本地ip:
Environment="NO_PROXY=localhost,127.0.0.1"

然后执行

 systemctl daemon-reload 
 systemctl restart docker

优点

稳定,和官方源同步

缺点

需要科学上网

bigcong