核心概念:Registry 到底是什么?
基本概念拆解
| 模块 | 核心含义 |
|---|---|
| 是什么? | Registry(仓库 / 注册表)是集中存储、管理、分发 Docker 镜像的服务,相当于镜像的「云端仓库 / 图书馆」,是 Docker 生态的核心基础设施之一。 |
| 为什么需要? | 解决「镜像怎么共享、怎么统一管理、怎么在多服务器 / 团队间同步」的问题:・没有仓库:只能用 U 盘 / 文件拷贝镜像,效率极低、版本混乱・有了仓库:一键 pull/push 实现镜像分发,支持权限管控、版本管理 |
| 能干什么? | 存储镜像、拉取 / 推送镜像、权限控制、版本管理、镜像加速、漏洞扫描等,是容器化部署的必备环节。 |
常见仓库分类
1docker hub
Docker 官方公共仓库,全球最大的镜像源,免费提供公共仓库,付费提供私有仓库,生态最全。
缺点:国内打不开
2阿里云镜像仓库
https://cr.console.aliyun.com/cn-hongkong/instances

3nexus
Nexus(全称 Sonatype Nexus Repository Manager),是目前企业里最主流的私有制品仓库管理工具,简单说就是你的「代码 / 软件包 / 镜像的集中管理中心」。
它到底能干嘛?
-
- 私有托管(Hosted)用来存你自己开发的包,比如公司内部的 Java Jar、Docker 镜像、npm 包等,团队可以统一拉取,避免泄露到公网。你之前的 docker-snapshot 仓库,就是典型的 Hosted 类型,专门用来推自己的镜像。
-
- 代理缓存(Proxy)作为公网仓库的 "代理",比如代理 Docker Hub、Maven 中央仓库。团队成员拉包时,先从 Nexus 缓存里拿,不用每次都去外网下载,速度更快、也不怕公网仓库挂掉。你之前的 docker-central 仓库,就是用来代理 Docker Hub 的。
-
- 聚合仓库(Group)把多个仓库(私有 + 代理)整合到一个统一地址,比如 docker-public,团队只需要配置这一个地址,就能同时拉私有镜像和公网镜像,不用来回切换配置。
一、启动 Nexus 容器的完整命令
bash
创建挂载卷
mkdir -p /opt/docker/nexus
chmod 777 -R /opt/docker/nexus
docker run -d --restart=always -p 8868:8081 -p 5000:5000 -p 5001:5001 --name nexus -v /opt/docker/nexus:/nexus-data sonatype/nexus3
- 8868 → 网页管理
- 5000 → 私有仓库,能推能拉(hosted)
- 5001 → 公共仓库,只能拉不能推(group)
二、查看初始 admin 密码
cat /opt/docker/nexus/admin.password
三、Docker 配置私有仓库(daemon.json)
bash
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://7ntm6v2h.mirror.aliyuncs.com"],
"insecure-registries": ["172.25.57.168:5000","172.25.57.168:5001"]
}
EOF
systemctl daemon-reload
systemctl restart docker
四、登录管理网站创建仓库

登录 Nexus 私有仓库(5000 是可推送端口)
docker login -uadmin 172.25.57.168:5000
五、给镜像打标签并推送到 Nexus
docker tag nginx 172.25.57.168:5000/nginx_nexus:1.0
docker push 172.25.57.168:5000/nginx_nexus:1.0
六、从 Nexus 拉取镜像
docker pull 172.25.57.168:5000/nginx_nexus:1.0
Harbor仓库
...