# 使用 Docker Hub 与私有 Registry

URL: https://caijiao.org/docker/images/registry
Source: docs/docker/images/registry.md
Description: 本章节讲解如何使用 Docker Hub 和私有 Registry 管理 Docker 镜像，包括账号配置、镜像推送与拉取、版本管理，以及企业级私有仓库的搭建与安全策略，帮助开发者高效协作与部署。

Docker Hub 是官方提供的公共镜像仓库，而私有 Registry 可在企业或团队内部搭建，用于安全、可控地管理镜像。本节将讲解二者的使用方法与最佳实践。

## 1. Docker Hub 使用

### 注册与登录

1. 访问 [Docker Hub](https://hub.docker.com/)
2. 注册账号
3. 在本地 CLI 登录：

```bash
docker login
# 输入用户名与密码
````

### 推送镜像到 Docker Hub

```bash
docker tag myapp:1.0 yourusername/myapp:1.0
docker push yourusername/myapp:1.0
```

### 拉取镜像

```bash
docker pull nginx:latest
docker pull yourusername/myapp:1.0
```

## 2. 私有 Registry 使用

### 搭建私有 Registry

```bash
docker run -d -p 5000:5000 --name registry registry:2
```

* 运行在本地或服务器上
* 支持 HTTPS 与认证，保证安全

### 推送镜像到私有 Registry

```bash
docker tag myapp:1.0 localhost:5000/myapp:1.0
docker push localhost:5000/myapp:1.0
```

### 拉取私有镜像

```bash
docker pull localhost:5000/myapp:1.0
```

## 3. Docker Hub 与私有 Registry 的对比

| 特性   | Docker Hub  | 私有 Registry       |
| ---- | ----------- | ----------------- |
| 存储位置 | 公共云         | 本地或企业私有           |
| 安全   | 公共访问/私有仓库   | 完全控制，支持认证与 HTTPS  |
| 使用成本 | 免费/付费方案     | 自行维护服务器资源         |
| 场景   | 开源镜像共享、快速下载 | 企业内部镜像管理、CI/CD 集成 |

## 4. 最佳实践

* 为镜像打清晰版本标签
* 定期清理旧镜像节省空间
* 对私有 Registry 配置访问控制和 HTTPS
* 利用 CI/CD 自动推送镜像，提高交付效率

---

掌握 Docker Hub 与私有 Registry 的使用，将帮助你在开发和生产环境中高效管理镜像，确保团队协作和部署安全。
