分享一下个人在使用 Docker 过程中无法下载镜像的一些解决方法
写在开头
由于目前在国内使用 Docker,无法从国外源如 DockerHub 下载镜像,所以今天分享3个用于在日常使用 Docker 过程中解决无法下载镜像问题的方法。
2025.3.15 编辑
试了一下直接修改 docker 配置文件,添加加速地址可以直接在命令行下载,在最开始使用 docker 的时候试过这个方法,没有效果,但是最近试了下又可以了~
目前个人比较推荐的是方法1和方法2 方法0
- 方法0:修改 docker 配置文件
- 方法1:DPanel 使用上手容易,操作简单,在解决镜像下载问题的同时个人认为 DPanel 也是最好用的 Docker 容器管理工具
- 方法2:是我在使用了其他人开发的 GitHub 项目之后,觉得功能不够丰富,进行修该优化之后的项目,可以每日自动更新同步的镜像,同时在 pull 镜像时填写的镜像名称方便输入与记忆(
docker pull ghcr.io/sqing33/dpanel
) - 方法3:缺点就是首次配置有些许复杂,同时 pull 的镜像名称过长(
docker pull swr.cn-south-1.myhuaweicloud.com/docker-sqing-huawei/dpanel
)
0. 修改 docker 配置文件添加加速地址
- 打开 docker 配置文件:
sudo nano /etc/docker/daemon.json
- 添加以下内容:
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker-0.unsee.tech",
"https://docker.1panel.live",
"https://registry.dockermirror.com",
"https://docker.imgdb.de",
"https://docker.m.daocloud.io",
"https://hub.firefly.store",
"https://hub.littlediary.cn",
"https://hub.rat.dev",
"https://dhub.kubesre.xyz",
"https://cjie.eu.org",
"https://docker.kejilion.pro",
"https://docker.1panelproxy.com",
"https://docker.hlmirror.com",
"https://hub.fast360.xyz",
"https://ghcr.io"
]
}
- 重启 docker :
sudo systemctl restart docker
1. 使用 docker 管理面板 DPanel 加速下载
- 安装 DPanel 管理面板:
docker run -d --name dpanel --restart=always \
-p 8807:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/dpanel:/dpanel -e APP_NAME=dpanel ghcr.nju.edu.cn/sqing33/dpanel
-
浏览器输入地址
http://[ip]:8807
进入面板,点击镜像管理
进入页面 -
点击左侧
仓库管理
,点击Docker Hub
行最后的设置图标 -
在加速地址填入如下地址:
https://docker.1panel.live
https://docker-0.unsee.tech
https://docker.1panel.live
https://registry.dockermirror.com
https://docker.imgdb.de
https://docker.m.daocloud.io
https://hub.firefly.store
https://hub.littlediary.cn
https://hub.rat.dev
https://dhub.kubesre.xyz
https://cjie.eu.org
https://docker.kejilion.pro
https://docker.1panelproxy.com
https://docker.hlmirror.com
https://hub.fast360.xyz
- 点击
镜像管理
页面左侧的镜像列表
,使用右边的拉取镜像
功能进行镜像下载
2. 将 Docker 镜像同步至 Github 仓库
- 此项目用于将 Docker 镜像同步到 GitHub 的仓库
ghcr.io
以加速国内 Docker 镜像的下载,若ghcr.io
下载速度慢可尝试使用南京大学加速站ghcr.nju.edu.cn
加速下载。 - 仓库地址:https://github.com/sqing33/docker-image-sync
- 使用方法:
仓库设置
首先,将此仓库
fork
到个人账号。进入已fork
的仓库后,点击页面顶部的Settings
进入设置页面。接着,依次选择Action
>General
。在Actions permissions
区域,选择Allow all actions and reusable workflows
,这将允许所有操作和可复用的工作流运行;在Workflow permissions
区域,选择Read and write permissions
,并勾选Allow GitHub Actions to create and approve pull requests
,此设置将赋予工作流读写权限,并允许其创建和批准拉取请求。完成上述设置后,点击save
保存更改。触发镜像同步
完成设置后,点击页面顶部的
Action
,再从左侧列表中选择将 Docker 镜像同步到 ghcr.io
。随后,点击右侧的Run workflow
,在弹出的界面中填写待同步的镜像信息。同步结果查看
镜像同步完成后,
readme.md
文件中会自动添加该镜像的相关信息条目,内容包括源镜像、用途、pull
命令以及docker-compose
文件路径。同时,在项目的docker-compose
目录下,会自动复制example.yaml
文件,并将其重命名为同步镜像的名称。镜像管理
若要查看或删除已同步过来的镜像,可访问 Github 个人首页(https://github.com/sqing33),点击
Packages
即可查看已同步的所有镜像。点击具体镜像,可查看其包含的所有版本。如需对单个镜像进行管理,可点击右侧的Package settings
进行相关操作。自动更新机制
本仓库设置了自动更新机制,每天晚上 12 点会自动从源镜像获取最新版本,并更新
ghcr.io
上的对应镜像。在同步过程中指定版本的镜像,更新时系统会保留该指定版本。同时,在更新过程中,系统会自动检索readme.md
中的镜像信息,若发现某个镜像已不存在于仓库内,会自动删除对应的条目。
3. 将 Docker 镜像同步至 华为云/阿里云 镜像仓库
使用方法稍复杂,可以自行进入对应的项目仓库查看
同步到阿里云镜像仓库:https://github.com/tech-shrimp/docker_image_pusher
同步到华为云镜像仓库:https://github.com/lomtom/sync-images