# 仓库与注册表（Registry）

URL: https://caijiao.org/docker/core/registry
Source: docs/docker/core/registry.md
Description: 本章节介绍 Docker 仓库与注册表的概念、作用以及操作方法，涵盖 Docker Hub、私有 Registry 的使用，以及镜像推送、拉取与版本管理，帮助开发者高效管理镜像。

Docker 仓库（Repository）和注册表（Registry）是镜像存储与分发的核心机制。理解它们有助于团队协作、持续集成和生产环境部署。

## 1. Docker Registry（注册表）

- 注册表是存储和分发 Docker 镜像的服务
- 官方公共注册表：Docker Hub（hub.docker.com）
- 私有注册表：可以在企业内部搭建，保证安全与控制访问

## 2. Repository（仓库）

- 仓库是注册表中的镜像集合，每个仓库包含同一镜像的多个版本（Tag）
- 例子：

```text
nginx:latest
myapp:1.0
````

## 3. 镜像推送（Push）

将本地镜像上传到注册表：

```bash
docker tag myapp:1.0 myregistry.com/myapp:1.0
docker push myregistry.com/myapp:1.0
```

- `docker tag`：打标签指定目标仓库
- `docker push`：上传镜像到 Registry

## 4. 镜像拉取（Pull）

从注册表下载镜像：

```bash
docker pull nginx:latest
docker pull myregistry.com/myapp:1.0
```

## 5. 私有 Registry 配置

- 搭建私有 Registry：

```bash
docker run -d -p 5000:5000 --name registry registry:2
```

- 推送镜像到私有 Registry：

```bash
docker tag myapp:1.0 localhost:5000/myapp:1.0
docker push localhost:5000/myapp:1.0
```

## 6. 仓库与注册表的最佳实践

- 使用版本标签管理镜像
- 对私有 Registry 设置访问控制和认证
- 定期清理过期镜像，节省存储空间
- 配置镜像扫描与安全策略

---

通过理解仓库与注册表的工作机制，你可以高效地管理和分发 Docker 镜像，为开发、测试与生产环境提供稳定支持。
