【Docker 入门系列】镜像仓库(Registry)全景图
镜像仓库(Docker Registry)是 Docker 生态的“云盘 + App Store”,专门用来存储、分发、管理 Docker 镜像的地方。
1. Registry 的三种主要形态(2026 年主流分类)
| 类型 | 代表产品 | 是否公开 | 是否需要登录 | 适合场景 | 拉取速度(国内) | 费用情况(2025-2026) |
|---|---|---|---|---|---|---|
| 公共官方 | Docker Hub | 是 | 部分需要 | 开源项目、个人学习、快速测试 | 很慢(需加速) | 免费层有限制,拉取/推送速率限 |
| 国内公共加速镜像 | 阿里云、腾讯云、华为云、网易云、DaoCloud 等 | 是 | 通常免登录 | 国内开发者首选,加速 docker.io | 极快 | 大部分免费 |
| 私有/企业级 | 自建 registry / Harbor / Harbor + ChartMuseum / GitLab Container Registry / Harbor / AWS ECR / Azure ACR / Google Artifact Registry | 否 | 必须登录 | 公司内部、合规、安全、CI/CD 集成 | 内网最快 | 自建免费,云厂商按量付费 |
2. 最常用的三种 Registry 使用方式对比(口诀:公-加-私)
| 操作 | Docker Hub(官方) | 国内公共加速镜像源 | 自建私有 Registry / Harbor |
|---|---|---|---|
| 拉取镜像 | docker pull nginx | docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx | docker pull mycompany.com:5000/myapp:v1 |
| 推送镜像 | docker push 重阳/myapp:v1 | 基本不支持个人推送 | docker push mycompany.com:5000/myapp:v1 |
| 加速配置方式 | — | 修改 daemon.json 的 registry-mirrors | — |
| 认证方式 | docker login | 通常无需 | docker login mycompany.com:5000 |
| 镜像地址格式 | nginx 或 library/nginx | 加速域名/原路径 | 域名:端口/项目/镜像:tag |
3. 国内最实用的加速配置(2026 年 1 月仍然有效的主流方案)
编辑 /etc/docker/daemon.json(Linux) 或 Docker Desktop → Settings → Docker Engine(Mac/Win)
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}
保存后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
小技巧:可以同时加 3~5 个,Docker 会自动轮询选择最快的。
4. 快速上手自建最轻量级私有 Registry(5 分钟版)
# 方式一:最简单(适合测试、学习)
docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v registry-data:/var/lib/registry \
registry:2
# 方式二:带 UI 管理界面(推荐入门自建)
docker run -d \
-p 5000:5000 \
-v registry-data:/var/lib/registry \
--name registry \
registry:2
docker run -d \
-p 8080:80 \
--link registry:registry \
-e REGISTRY_URL=http://registry:5000 \
--name registry-browser \
konsultaner/docker-registry-browser
访问:http://你的服务器IP:8080 就能看到图形化界面。
推送示例:
# 先给本地镜像打 tag
docker tag nginx:latest 192.168.1.100:5000/mynginx:v1
# 登录(默认 registry:2 无需用户名密码,除非你加了认证)
# docker login 192.168.1.100:5000 (如果加了 htpasswd 才需要)
# 推送
docker push 192.168.1.100:5000/mynginx:v1
# 其他人拉取
docker pull 192.168.1.100:5000/mynginx:v1
5. 企业/生产环境推荐路径(2025-2026 主流选择)
- 小团队 / 个人项目 → Docker Hub + 国内加速
- 中型团队 / 需要权限控制 → 自建 Harbor(开源最强)
- 大型企业 / 合规要求高 → Harbor + LDAP/AD + RBAC + 镜像扫描
- 云原生公司 → 云厂商托管:阿里 ACR、AWS ECR、Google Artifact Registry、Azure ACR
- GitOps 爱好者 → GitLab / GitHub Container Registry (ghcr.io)
6. 常见命令速查(Registry 相关)
docker login # 登录仓库
docker logout # 退出
docker push 用户名/镜像:tag # 推送到 Docker Hub
docker pull 仓库地址/镜像:tag # 拉取
docker search nginx # 在 Docker Hub 搜索
一句话总结口诀(背下来超有用):
“公用 Docker Hub 慢,国内加速最香;公司内部用私有,Harbor 企业最强。”
想深入哪一块?
- Harbor 的完整部署(带 HTTPS + 认证 + 扫描)
- 如何在 K8s 中使用私有仓库(imagePullSecrets)
- registry 与 distribution 的区别
- 2026 年 Docker Hub 免费额度变化
直接告诉我,我继续给你展开~