mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-02-28 13:00:25 +00:00
3.1 KiB
3.1 KiB
Docker Hub
什么是 Docker Hub
Docker Hub 是 Docker 官方维护的公共镜像仓库,也是全球最大的容器镜像库。
它提供了:
- 官方镜像:由 Docker 官方和软件厂商(如 Nginx, MySQL, Node.js)维护的高质量镜像。
- 个人/组织仓库:用户可以上传自己的镜像。
- 自动构建:与 GitHub/Bitbucket 集成(需付费)。
- Webhooks:镜像更新时触发回调。
核心功能
1. 搜索镜像
除了网页搜索,也可以使用命令行:
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL
centos The official build of CentOS. 7000+ [OK]
技巧:始终优先使用
OFFICIAL标记为[OK]的镜像,安全性更有保障。
2. 拉取镜像
$ docker pull nginx:alpine
3. 推送镜像
需要先登录:
$ docker login
# 输入用户名和密码
打标签并推送:
# 1. 标记镜像
$ docker tag myapp:v1 username/myapp:v1
# 2. 推送
$ docker push username/myapp:v1
限制与配额(重要)
镜像拉取限制 (Rate Limiting)
自 2020 年 11 月起,Docker Hub 对匿名和免费用户实施了拉取速率限制:
| 用户类型 | 限制 |
|---|---|
| 匿名用户 (未登录) | 每 6 小时 100 次请求 |
| 免费账户 (已登录) | 每 6 小时 200 次请求 |
| Pro/Team 账户 | 无限制 |
提示:如果在 CI/CD 环境中遇到
toomanyrequests错误,建议:
- 在 CI 中配置
docker login- 使用国内镜像加速器
- 搭建私有仓库代理
安全最佳实践
1. 启用 2FA (双因素认证)
在 Account Settings -> Security 中启用 2FA,保护账号安全。启用后,CLI 登录需要使用 Access Token 而非密码。
2. 使用 Access Token
不要在脚本或 CI/CD 中直接使用登录密码。
- 在 Docker Hub -> Account Settings -> Security -> Access Tokens 创建 Token。
- 使用 Token 作为密码登录:
$ docker login -u username -p dckr_pat_xxxxxxx
3. 关注镜像漏洞
Docker Hub 会对官方镜像和付费用户的镜像进行安全扫描。在镜像标签页可以看到漏洞扫描结果。
Webhooks
当镜像被推送时,可以自动触发 HTTP 回调(例如通知 CI 系统部署)。
配置方法: 仓库页面 -> Webhooks -> Create Webhook。
自动构建 (Automated Builds)
⚠️ 目前仅限付费用户 (Pro/Team) 使用。
链接 GitHub/Bitbucket 仓库后,当代码有提交或打标签时,Docker Hub 会自动运行构建。这保证了镜像总是与代码同步,且由可信的官方环境构建。
本章小结
| 功能 | 说明 |
|---|---|
| 官方镜像 | 优先使用的基础镜像 |
| 拉取限制 | 匿名 100次/6h,登录 200次/6h |
| 安全 | 推荐开启 2FA 并使用 Access Token |
| 自动化 | 支持 Webhooks 和自动构建 |