Docker 镜像源的修改方式

Docker 镜像源的修改方式
Photo by Ian Taylor / Unsplash

中国大陆的用户由于某种不可描述的原因,导致从 Docker Hub pull 镜像时,速度慢得难以忍受,我曾经试过 pull 一个 Blender 镜像,一上午都没成功,所以比较靠谱的方法还是修改镜像源的地址,有以下几种方式 (以 USTC 为例):

  • 直接设置 --registry-mirror 参数,仅对当前的命令有效
    docker run hello-world --registry-mirror=https://docker.mirrors.ustc.edu.cn
    
  • 修改 /etc/default/docker,加入 DOCKER_OPTS="镜像地址",可以有多个
    DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn"
    
  • 支持 systemctl 的系统,通过 sudo systemctl edit docker.service,会生成 etc/systemd/system/docker.service.d/override.conf 覆盖默认的参数,在该文件中加入如下内容:
    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker -d -H fd:// --registry-mirror=https://docker.mirrors.ustc.edu.cn
    
  • 新版的 Docker 推荐使用 json 配置文件的方式,默认为 /etc/docker/daemon.json,非默认路径 需要修改 dockerd 的 --config-file,在该文件中加入如下内容:
    {
      "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }
    
    参考了中科大 Linux 协会的文章:Docker 镜像使用帮助