🕝新手教程:Docker 镜像加速
00 分钟
2024-2-16
2024-3-28
type
status
date
slug
summary
tags
category
icon
password

1. 说明

使用 Unraid 亦或是其他的系统在拉取 Docker 镜像时,网络请求都会发向 docker.io 以及 docker.com 这两个域名,所以如果说你所处的网络无法正常访问到这两个域名,那么就会出现镜像无法下载(或者速度很慢)的情况。
因此为了解决此问题,阿里云、163 或者百度等都提供了国内加速器服务,例如:
更多关于 Docker 镜像加速的信息可以查看这里:Docker -从入门到实践
  • 网易云加速器:https://hub-mirror.c.163.com
  • 百度云加速器:https://mirror.baidubce.com
  • 阿里云(具体地址见下文)
其他更多的 Docker 镜像站可以看这里:
本文以阿里云镜像加速为例介绍相关的配置步骤。

2. 修改步骤

阿里云的 Docker 镜像加速是免费的,可以通过注册一个阿里云账号来启用属于本账号的镜像地址,注册账号之后登录到 👉🏼阿里云容器镜像加速服务 页面来获取对应的 URL 链接:
notion image
当你获取到 URL 地址之后,你可以选择使用下面两个方法当中的一个来实现 Unraid 上的 Docker 镜像下载加速效果。

2.1 方法一:创建 daemon.json 文件并添加镜像源

daemon.json 是 Docker 的一个重要的配置文件,用于管理 Docker 守护进程的参数。它是 Docker Engine 的配置管理文件,几乎涵盖了所有 Docker 命令行启动可以配置的参数。我们可以通过此文件来添加 Docker 镜像源的参数,从而实现 Docker 镜像的加速下载。
替换下面命令里面的 https://xxxxx.mirror.aliyuncs.com 地址为你的阿里云镜像加速地址,然后复制命令到 Unraid 的命令行窗口中运行:
💡
注意,如果你有使用 Unraid 上的 Nvidia 插件或者先前已经对 daemon.json 文件做了修改,这个命令会覆盖 daemon.json 文件内已经有的内容,请谨慎使用。
由于国内还有其他几个可以使用的 Docker 镜像源,所以你也可以添加更多个镜像源地址,修改上面的命令后:
最后重启 Docker 服务:
notion image
你可以通过下面的命令来验证所添加的镜像地址是否已经正确添加上:
如果输出的信息中已经包含了相应的镜像地址,那么就表示设置正确并已经生效:
由于 /etc/docker/daemon.json 文件会在 Unraid 重启之后会被清空,所以你需要将上面的命令添加到 /boot/config/go 文件中,以此来实现 Unraid 系统加载时自动添加镜像源地址。
go 文件里面写下的命令会在 Unraid 加载系统时被自动执行,所以通过在 go 文件里面添加命令可以实现开机自动执行的效果。另外这个文件是保存在 U 盘(系统盘)的 config 文件夹,所以你也可以将 U 盘插上电脑然后自行编辑。
执行下面的命令来给 go 文件添加镜像加速的命令:
检查 go 文件是否已经被修改:
如果输出的内容如下,那么就说明命令已经正确添加到 go 文件中:

2.2 方法二:添加 DOCKER_OPTS 参数到 docker.cfg 文件

此方法由评论区的朋友 xxg 介绍,感谢!
💡
注意:如果你的 docker.cfg 文件配置不正确,那么可能会导致 docker.img 镜像无法被 Unraid 正确挂载,会提示无法启动 Docker 服务报错。所以建议各位在修改 docker.cfg 文件的时候先备份再做调整。
/boot/config/docker.cfg 文件记录了 Unraid 上 Docker 服务相关的配置参数,例如 docker.img 的镜像大小、镜像文件系统格式、Docker 自定义网络类型和默认容器配置文件存储位置(appdata)等等相关的信息。我们可以通过在这个文件中添加 DOCKER_OPTS 参数来配置镜像加速地址,并且由于 docker.cfg 文件里面的内容不会随着系统的重启而产生变化,所以镜像加速的效果就可以实现持久化。
DOCKER_OPTS 用于配置 Docker 容器运行时的各种选项,这些选项可以影响容器的行为和运行环境,如网络配置、资源限制、日志记录等。
使用下面的命令来将镜像加速的配置写入到 docker.cfg 文件中(添加之后记得重启 Docker 服务来生效):
但是需要说明的是,这种方式只能添加单个镜像源地址,所以如果你想添加多个的话只能是使用上面添加 daemon.json 文件的方法来实现。
关于更多 DOCKER_OPTS 可以使用的运行参数,可以参考官方的文档:

3. 补充:手动修改 /etc/docker/daemon.json 文件

如果你的 daemon.json 文件中已经有了相关的配置,并且希望加上 Docker 镜像地址,那么你可以参考下面的格式手动进行添加。
比如说,假如你的 daemon.json 文件里面原有的内容是这样的:
那么在添加镜像地址是,你需要这么来添加:
请尽量不要用 Windows 的记事本一类的工具去编辑,可以的话请使用 vscode 、sublime Text 、notepad 等工具。
请注意,如果 daemon.json 里面的格式不正确,那么会导致 Docker 服务无法启动,例如下面的案例:

评论