docker实战扩展一(docker加速器,紧急情况!镜像库全面失效,一招解决Docker无法下载)

现象:

Docker 加速器原理

Docker 镜像加速器可以帮助你更快地从 Docker Hub 或其他镜像仓库下载镜像,特别是在网络环境较差或访问 Docker Hub 较慢的情况下。常见的加速器提供商包括阿里云、网易云等。

Docker 加速器原理

Docker 镜像加速器通过在本地设置一个代理服务器,将对 Docker Hub 镜像的请求重定向到加速器提供的缓存服务器上。这样可以减少从远程服务器下载镜像的时间,提高下载速度。

配置 Docker 镜像加速器

以下是配置 Docker 镜像加速器的详细步骤,并以阿里云为例提供实战案例。

步骤 1:获取加速器地址

首先,你需要在阿里云容器镜像服务的控制台上获取加速器地址。

  1. 登录 阿里云容器镜像服务
  2. 在左侧菜单中找到并点击“镜像加速器”。
  3. 你会看到一个专属的加速器地址,形如 https://<your_accelerator>.mirror.aliyuncs.com
步骤 2:配置 Docker 使用加速器

接下来,你需要在 Docker 的配置文件中添加镜像加速器地址。

  1. 编辑 Docker 配置文件 /etc/docker/daemon.json

    sudo nano /etc/docker/daemon.json
    
  2. 在文件中添加或修改 registry-mirrors 配置项,内容如下:

    {
      "registry-mirrors": ["https://<your_accelerator>.mirror.aliyuncs.com"]
    }
    
  3. 保存文件并退出编辑器。

步骤 3:重启 Docker 服务

为了使更改生效,需要重启 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

实战案例

假设你已经完成了上述配置,现在我们来测试一下使用镜像加速器拉取镜像的速度提升。

  1. 确认 Docker 服务运行正常:

    sudo systemctl status docker
    
  2. 拉取一个常见的镜像,比如 nginx

    docker pull nginx
    

    由于配置了镜像加速器,该命令会从加速器的缓存服务器拉取镜像,速度应该比直接从 Docker Hub 拉取快很多。

  3. 验证镜像是否下载成功:

    docker images
    

    你应该能看到 nginx 镜像出现在列表中。

常见加速器提供商

除了阿里云,其他一些常见的镜像加速器提供商还包括:

你可以根据自己的需求选择合适的加速器,并按照上述步骤进行配置。

亲测/etc/docker/daemon.json可用

以下是带有详细注释的 Docker 配置文件:

{
  // registry-mirrors: 配置镜像加速器地址列表。多个地址可以加速不同的镜像来源,提高下载速度。
  "registry-mirrors": [
        "https://i3nc9nvv.mirror.aliyuncs.com", // 阿里云镜像加速器地址
        "https://docker.m.daocloud.io",        // DaoCloud 镜像加速器地址
        "https://dockerhub.timeweb.cloud"      // Timeweb 镜像加速器地址
    ],

  // insecure-registries: 配置不安全的镜像仓库地址列表。通常用于本地开发测试环境。
  "insecure-registries": ["harbor-local.kubernets.cn"], // 本地私有镜像仓库地址,使用 HTTP 而非 HTTPS

  // log-driver: 配置 Docker 的日志驱动类型。这里使用 json-file 类型保存日志。
  "log-driver":"json-file",

  // log-opts: 配置日志驱动的选项。
  "log-opts": {
    "max-size":"500m", // 每个日志文件的最大大小,超过这个大小会进行日志轮转。
    "max-file":"3"     // 保留的最大日志文件数量。超过这个数量的旧日志文件将被删除。
  }
}

解释

  • registry-mirrors

    • 这是一个数组,包含多个镜像加速器地址。Docker 会优先从这些加速器地址拉取镜像。
    • "https://i3nc9nvv.mirror.aliyuncs.com":阿里云镜像加速器地址。
    • "https://docker.m.daocloud.io":DaoCloud 镜像加速器地址。
    • "https://dockerhub.timeweb.cloud":Timeweb 镜像加速器地址。
  • insecure-registries

    • 这是一个数组,包含不安全的镜像仓库地址(即使用 HTTP 而不是 HTTPS 的仓库)。
    • "harbor-local.kubernets.cn":一个本地的私有镜像仓库地址,通常用于开发和测试环境。
  • log-driver

    • 配置 Docker 使用的日志驱动类型。json-file 是默认的日志驱动,日志会以 JSON 格式存储在文件中。
  • log-opts

    • 配置日志驱动的选项。
    • max-size:每个日志文件的最大大小。例如,"500m" 表示每个日志文件最大 500 MB。
    • max-file:保留的最大日志文件数量。例如,"3" 表示最多保留 3 个日志文件。超过这个数量的旧日志文件将被删除。

配置步骤

  1. 编辑 Docker 配置文件
    使用文本编辑器打开或新建 Docker 的配置文件 /etc/docker/daemon.json

    sudo nano /etc/docker/daemon.json
    
  2. 粘贴并保存配置
    将上述带有注释的 JSON 配置粘贴到文件中,并保存。

  3. 重启 Docker 服务
    使更改生效,需要重启 Docker 服务。

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

验证配置

你可以通过拉取一个镜像来验证镜像加速器配置是否生效:

docker pull nginx

也可以使用 docker info 命令来检查 Docker 的配置信息:

docker info

在输出信息中找到 Registry Mirrors 一项,确认它包含你配置的加速器地址。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风 001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值