通过镜像站拉取 Docker 镜像,拉取后自动还原为原始镜像名与 tag,并删除镜像站 tag。不用手动改 tag,一条命令搞定。

适用场景

  • 国内网络无法直接拉取 Docker Hub 镜像
  • 不想手动执行 docker tagdocker 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 或环境变量切换
  • 官方镜像(如 nginxredis)自动补全 library/ 前缀
  • 非官方镜像(如 bitnami/nginx)直接拼接镜像站前缀
  • 单个镜像拉取失败不影响其他镜像,便于批量操作
  • 删除镜像站 tag 失败时忽略(镜像层可能被其他 tag 引用)