国内 docker 镜像加速都禁止了,不管什么方法,都得科学上网之后从官方镜像源拉取

如果是 windows 电脑安装了 docker desktop,那么只要本机电脑开启了科学上网,就能从官方源拉取镜像

如果是 linux,要么也装个科学上网软件,要么设置代理服务器 ip 端口

下面讲解 linux 使用设置代理服务器 ip 端口的方式让 docker 从官方源拉取镜像的步骤

临时设置

  1. 首先得确定代理服务器的 ip、端口,这里假设是 192.168.56.11:5656

  1. linux 设置代理临时代理

export HTTP_PROXY=192.168.56.11:5656
export HTTPS_PROXY=192.168.56.11:5656
  1. 测试 docker 拉取镜像

sudo docker pull openjdk:8-jre

有些同学可能遇到就算设置了 HTTP_PROXY、HTTPS_PROXY,也用 curl 访问过 google,确定代理服务是正常的,但是 docker 还是拉取镜像超时

那么你得确认下 HTTP_PROXY、HTTPS_PROXY 这两个变量,是不是把 http://​ ​给写上了,如果真的是 http://192.168.56.11:5656​,那么 curl 是可以正常访问外网的,但是 docker 就不行了,docker 使用代理,必须是 192.168.56.11:5656​ ​这种 ip:port 的格式

永久设置

  1. 方式一:如果不想每次新开一个终端拉取镜像时都设置一遍代理,那么可以将设置代理的那两行写到 /etc/bashrc

  1. 方式二:如果只想让 docker 使用代理,而不影响服务器其他应用的网络,那么可以给 docker 单独设置

    2.1、创建一个目录 mkdir /etc/systemd/system/docker.service.d

    2.2、新增一个文件 proxy.conf,将代理配置写进去

    [Service]
    Environment="HTTP_PROXY=192.168.56.11:5656"
    Environment="HTTPS_PROXY=192.168.56.11:5656"
    

    2.3、重启服务

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    2.4、查看是否设置成功 sudo docker info​,可以看到这些信息就是设置成功

    .....
    .....
     HTTP Proxy: 192.168.56.11:5656
     HTTPS Proxy: 192.168.56.11:5656
    .....
    .....