Docker默认使用的源Cloudflare的源,我们在国内拉镜像要不很慢要不就是直接超时,比如

error pulling image configuration: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/c6/c6b84b685f35f1a5d63661f5d4aa662ad9b7ee4f4b8c394c022f25023c907b65/data?verify=1694083133-c%2F9dTky6rEoGFwlzQAT79EteVEY%3D": dial tcp 104.16.104.207:443: i/o timeout

所以在国内的话,最好还是要使用国内的镜像源,解决拉取镜像慢或者拉取超时的问题。

1 Docker国内镜像源

目前可以使用的国内镜像源有:

  • DockerProxy:https://dockerproxy.com(推荐)
  • 网易:https://hub-mirror.c.163.com
  • 百度:https://mirror.baidubce.com
  • 腾讯:https://ccr.ccs.tencentyun.com

其他的国内镜像源很多都已经失效,具体可参考:https://juejin.cn/post/7165806699461378085

2 Docker设置国内镜像源

2.1 修改配置文件

Docker的配置文件为/etc/docker/daemon.json,使用

nano /etc/docker/daemon.json

打开配置文件,如果之前没有daemon.json文件,则会创建该文件。在该文件中加入以下配置项

{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com"
    ]
}

就是将第1节中国内镜像源的地址加到registry-mirrors字段中。

2.2 重启Docker使配置生效

有两种方式,第一种为

systemctl daemon-reload
systemctl restart docker

第二种为

service docker restart

2.3 查看配置是否生效

使用以下命令

docker info

如果信息中包含

Registry Mirrors:
  https://dockerproxy.com/
  https://hub-mirror.c.163.com/
  https://mirror.baidubce.com/
  https://ccr.ccs.tencentyun.com/

则说明配置生效。

Docker – Linux更换国内镜像源-StubbornHuang Blog

2.4 镜像源测速

可使用linux的time进行测速,比如使用以下命令

time docker pull ubuntu:latest

参考