unraid的docker应用总是拉不到镜像或者拉取速度太慢,总结以下处理方法

方法一

安装User Scripts

应用中搜索并安装User Scripts,安装完成后可以在设置->用户使用程序中打开

创建执行脚本

User Scripts中新建脚本(ADD NEW SCRIPT),可命名为docker-mirrors,然后点击对应脚本编辑(EDIT SCRIPT)添加以下内容并保存。

# 创建目录(如果不存在)
sudo mkdir -p /etc/docker

# 写入配置(覆盖原有内容,如需保留其他配置请手动合并)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://docker.1ms.run"]
}
EOF

# 重启 Docker 服务
sudo /etc/rc.d/rc.docker restart

设置执行方式

编辑完成后选择仅在首次启动阵列时执行At First Array Start Only

方法二:添加 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 服务来生效):

tee >> /boot/config/docker.cfg <<- EOF
DOCKER_OPTS="--registry-mirror=https://xxxxx.mirror.aliyuncs.com"
EOF

Bash

如果需要添加多个镜像:

tee >> /boot/config/docker.cfg <<- EOF
DOCKER_OPTS="--registry-mirror=https://xxxxx.mirror.aliyuncs.com --registry-mirror=https://xxxxx.xxx.com --registry-mirror=https://xxxxx.xxx.com"
EOF

Bash

关于更多 DOCKER_OPTS 可以使用的运行参数,可以参考官方的文档:

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

如果你的 daemon.json 文件中已经有了相关的配置,并且希望加上 Docker 镜像地址,那么你可以参考下面的格式手动进行添加。

比如说,假如你的 daemon.json 文件里面原有的内容是这样的:

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

Bash这里的配置是 Nvidia 显卡硬件解码的参数,在你安装了 Nvidia 插件之后会自动生成

那么在添加镜像地址是,你需要这么来添加:

请尽量不要用 Windows 的记事本一类的工具去编辑,可以的话请使用 vscode 、sublime Text 、notepad 等工具。

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    },

    "registry-mirrors": [
        "https://xxxxx.mirror.aliyuncs.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
    ]
}

Bash

请注意,如果 daemon.json 里面的格式不正确,那么会导致 Docker 服务无法启动

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享