侧边栏壁纸
  • 累计撰写 90 篇文章
  • 累计创建 17 个标签
  • 累计收到 23 条评论

目 录CONTENT

文章目录

官方镜像加速

Administrator
2023-12-27 / 3 评论 / 0 点赞 / 52 阅读 / 0 字

使用容器时一般需要首先下载一个容器镜像,例如 Docker Hub 官方提供的 MySQL、WordPress 等容器镜像。然而由于网络原因,下载一个 Docker 官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务 ACR 提供了官方的镜像站点,从而加速官方镜像的下载。

重要

镜像加速器是面向个人开发者的服务,仅限于支持个人开发场景,不允许有再次封装或商业用途。

说明

根据 Docker 公司政策,2020 年 11 月 01 日起将逐步向 Docker Hub 匿名和免费用户实施速率和拉取请求次数限制。ACR 镜像加速器无法保证一定拉取到 latest 最新的镜像版本,建议您指定镜像版本拉取。关于 Docker Hub 拉取请求次数限制的详细介绍,请参见Download rate limit

获取镜像加速器地址

ACR 会为每一个账号(阿里云账号或 RAM 用户)生成一个镜像加速器地址,配置镜像加速器前,您需要获取镜像加速器地址。

登录容器镜像服务控制台,在左侧导航栏选择镜像工具 > 镜像加速器,在镜像加速器页面获取 加速器地址

例如:
加速器地址:[系统分配前缀].mirror.aliyuncs.com  

配置 Docker 运行时镜像加速器

在不同的操作系统下,配置加速器的方式略有不同,下文将介绍主要操作系统的配置方法。

当您的 Docker 版本较新时

当您下载安装的 Docker Version 不低于 1.10 时,建议通过 daemon config 进行配置。使用配置文件 /etc/docker/daemon.json(没有时新建该文件)。

{
    "registry-mirrors": ["<镜像加速器地址>"]
}          

然后重启 Docker Daemon。

当您的 Docker 版本较旧时

您需要根据不同的操作系统修改对应的配置文件。

  • Ubuntu 12.04 - 14.04
    Ubuntu 的配置文件的位置在 /etc/default/docker 目录下。您只需要在这个配置文件中添加加速器的配置项,重启 Docker 即可。

    echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=<your accelerate address>\"" | sudo tee -a /etc/default/docker
    sudo service docker restart          
    
  • Ubuntu 15.04 - 15.10
    Ubuntu 的配置文件的位置在 **/etc/systemd/system/docker.service.d/目录下。在这个目录下创建任意的*.conf** 文件即可作为配置文件。然后在这个配置文件中添加加速器的配置项,之后重启 Docker 即可。

    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo tee /etc/systemd/system/docker.service.d/mirror.conf <<-'EOF'
    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker daemon -H fd:// --registry-mirror=<your accelerate address>
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker          
    
  • CentOS 7
    CentOS 的配置方式略微复杂,需要先将默认的配置文件(/lib/systemd/system/docker.service)复制到 /etc/systemd/system/docker.service。然后再将加速器地址添加到配置文件的启动命令中,之后重启 Docker 即可。

    sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
    sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service
    sudo sed -i "s|ExecStart=/usr/bin/dockerd|ExecStart=/usr/bin/dockerd --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service
    sudo systemctl daemon-reload
    sudo service docker restart          
    
  • Redhat 7
    Redhat 7 配置加速器,需要编辑 /etc/sysconfig/docker 配置文件。在OPTIONS配置项中添加加速器配置--registry-mirror=<your accelerate address>。最后执行sudo service docker restart命令以重启 Docker Daemon。

  • Redhat 6/CentOS 6
    在这两个系统上无法直接安装 Docker,需要升级内核。
    配置加速器时需要编辑 /etc/sysconfig/docker 配置文件。 在other_args配置项中添加加速器配置--registry-mirror=<your accelerate address>。最后执行sudo service docker restart命令以重启 Docker Daemon。

  • Docker Toolbox
    在 Windows、Mac 系统上使用 Docker Toolbox 的话,推荐做法是在创建 Linux 虚拟机的时候,就将加速器的地址配置进去。

    docker-machine create --engine-registry-mirror=<your accelerate address> -d virtualbox default
    docker-machine env default
    eval "$(docker-machine env default)"
    docker info          
    

    如果您已经通过 docker-machine 创建了虚拟机的话,则需要通过登录该虚拟机来修改配置。

    1. 执行docker-machine ssh <machine-name>命令以登录虚拟机。

    2. 修改 /var/lib/boot2docker/profile 文件,将--registry-mirror=<your accelerate address>添加到EXTRA_ARGS中。

    3. 执行sudo /etc/init.d/docker restart命令以重启 Docker 服务。

配置 Containerd 运行时镜像加速器

Containerd 通过在启动时指定一个配置文件夹,使后续所有镜像仓库相关的配置都可以在里面热加载,无需重启 Containerd。

  1. /etc/containerd/config.toml配置文件中插入如下config_path

    config_path = "/etc/containerd/certs.d"
    

    说明

    /etc/containerd/config.toml非默认路径,您可以根据实际使用情况进行调整。

    1. 若已有plugins."io.containerd.grpc.v1.cri".registry,则在下面添加一行,注意要有 Indent。若没有,则可以在任意地方写入。

      [plugins."io.containerd.grpc.v1.cri".registry]
        config_path = "/etc/containerd/certs.d"
      
    2. 之后需要检查配置文件中是否有原有 mirror 相关的配置,如下:

      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
      

      若有原有 mirror 相关的配置,则需要清理。

    3. 执行systemctl restart containerd重启 Containerd。

    4. 若启动失败,执行journalctl -u containerd检查为何失败,通常是配置文件仍有冲突导致,您可以依据报错做相应调整。

  2. 在步骤一中指定的config_path路径中创建docker.io/hosts.toml文件。
    在文件中写入如下配置。

    server = "https://registry-1.docker.io"
    
    [host."$(镜像加速器地址,如https://xxx.mirror.aliyuncs.com)"]
      capabilities = ["pull", "resolve", "push"]
    
  3. 拉取 Docker 镜像验证加速是否生效。如未生效,请参见Reference

0

评论区