通过镜像站拉取 Docker 镜像,拉取后自动还原为原始镜像名与 tag,并删除镜像站 tag。不用手动改 tag,一条命令搞定。
适用场景
- 国内网络无法直接拉取 Docker Hub 镜像
- 不想手动执行
docker tag和docker rmi还原镜像名 - 批量拉取多个镜像的日常运维或 CI 场景
前置条件
- 已安装 Docker(
docker --version验证) - 选择一个可用的镜像站(见下方推荐)
用法
# 下载脚本
curl -o docker-pull-mirror.sh https://tendcode.com/scripts/docker-pull-mirror/
# 添加执行权限
chmod +x docker-pull-mirror.sh
# 拉取单个官方镜像
bash docker-pull-mirror.sh nginx:latest
# 拉取多个镜像
bash docker-pull-mirror.sh nginx:latest redis:7.0 alpine:3.18
# 拉取非官方镜像(带 namespace)
bash docker-pull-mirror.sh bitnami/nginx:1.25
# 指定镜像站
bash docker-pull-mirror.sh -m dockerproxy.com nginx:latest
# 通过环境变量指定镜像站
DOCKER_MIRROR=mirror.ccs.tencentyun.com bash docker-pull-mirror.sh nginx:latest
选项
| 选项 | 说明 |
|---|---|
-m, --mirror <地址> |
指定镜像站地址,默认 docker.1ms.run |
-h, --help |
显示帮助信息 |
也可通过环境变量 DOCKER_MIRROR 设置镜像站,优先级高于默认值。
推荐镜像站
镜像站更新 https://www.wangdu.site/course/2109.html
| 镜像站 | 地址 | 备注 |
|---|---|---|
| 1ms | docker.1ms.run |
推荐,稳定快速 |
| Docker Proxy | dockerproxy.com |
无需注册 |
| 网易蜂巢 | hub.c.163.com |
老牌镜像站 |
| 中科大 USTC | docker.mirrors.ustc.edu.cn |
教育网友好 |
| 腾讯云 CCD | mirror.ccs.tencentyun.com |
腾讯云用户推荐 |
注意
- 脚本默认使用
docker.1ms.run作为镜像站,可通过-m或环境变量切换 - 官方镜像(如
nginx、redis)自动补全library/前缀 - 非官方镜像(如
bitnami/nginx)直接拼接镜像站前缀 - 单个镜像拉取失败不影响其他镜像,便于批量操作
- 删除镜像站 tag 失败时忽略(镜像层可能被其他 tag 引用)