Docker Hub 认证推送
Docker Hub 是最流行的公共镜像仓库,下面介绍认证与推送方法。
注册账号
- 访问 https://hub.docker.com
- 注册免费账号(有限私有仓库)
- 获取用户名和密码
登录认证
Bash
# 交互式登录
docker login
Username: yourusername
Password:
Login Succeeded
# 非交互式(脚本中使用)
echo "password" | docker login --username yourusername --password-stdin
# 登录指定仓库
docker login harbor.example.com
认证存储
Bash
# 认证信息存储在
~/.docker/config.json
# 查看(Base64 编码,非加密)
cat ~/.docker/config.json
密码以 Base64 编码存储,非加密。不要将 config.json 提交到 Git。
推送镜像
标记镜像
Bash
# 标记为 Docker Hub 格式
docker tag my-app:latest yourusername/my-app:v1.0
# 格式: 用户名/镜像名:标签
推送
Bash
# 推送到 Docker Hub
docker push yourusername/my-app:v1.0
# 推送多个标签
docker push yourusername/my-app:v1.0
docker push yourusername/my-app:latest
查看推送
Bash
# 登录 Docker Hub Web UI
# 导航到你的仓库
# 查看推送的镜像和标签
拉取镜像
Bash
# 公共镜像
docker pull nginx:latest
# 你的私有镜像(登录后)
docker pull yourusername/my-app:v1.0
# 其他用户的公共镜像
docker pull otheruser/their-app:latest
组织管理
创建组织
Bash
# Docker Hub 可创建组织
# Web UI: 组织 → 新建组织
# 添加成员和权限
# 推送组织镜像
docker tag my-app:latest orgname/my-app:v1.0
docker push orgname/my-app:v1.0
仓库限制
免费账号
- 无限公共仓库
- 1 个私有仓库
- 拉取限速(匿名)
付费账号
- 无限私有仓库
- 无拉取限速
- 扫描和签名
CI/CD 集成
YAML
# GitHub Actions 示例
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push image
run: |
docker push yourusername/my-app:${{ github.sha }}
要点总结
docker login登录 Docker Hub,认证存储在~/.docker/config.jsondocker tag 用户名/镜像名:标签标记推送格式docker push推送到 Docker Hub,Web UI 查看- 免费账号 1 个私有仓库,付费无限
- CI/CD 使用 secrets 存储认证,不要硬编码密码
📝 发现内容有误?点击此处直接编辑