镜像发布全流程(DockerHub + 阿里云容器镜像服务)
发布镜像的核心逻辑是:登录镜像仓库 → 给镜像打符合仓库规则的标签 → 推送镜像。
一、发布到 DockerHub(官方公共仓库)
前置准备
- 注册 DockerHub 账号:https://hub.docker.com/(记住用户名、密码);
- 确保本地已构建好要发布的镜像(如
mycentos:1.0)。
步骤 1:登录 DockerHub(终端执行)
docker login
- 输入 DockerHub 用户名 + 密码(密码输入时无回显,直接回车即可);
- 输出
Login Succeeded表示登录成功。
步骤 2:给镜像打标签(必须符合 DockerHub 规则)
格式:docker tag 本地镜像名:版本 DockerHub用户名/仓库名:版本
# 示例:把本地 mycentos:1.0 打标签为 gaoyu/mycentos:1.0(gaoyu 是你的 DockerHub 用户名)
docker tag mycentos:1.0 gaoyu/mycentos:1.0
✅ 验证标签:执行 docker images 能看到 gaoyu/mycentos:1.0 镜像。
步骤 3:推送镜像到 DockerHub
docker push gaoyu/mycentos:1.0
- 推送过程会显示每层镜像的上传进度;
- 输出
latest: digest: xxxxxxxx size: xxx表示推送成功。
步骤 4:验证(可选)
登录 DockerHub 网页,在「Repositories」中能看到 mycentos 仓库,即发布成功。
补充:退出登录(可选)
docker logout
二、发布到阿里云容器镜像服务(国内仓库,速度更快)
前置准备
- 登录阿里云容器镜像服务:https://cr.console.aliyun.com/;
- 完成「命名空间创建」(必填):
- 左侧菜单 → 命名空间 → 创建命名空间(如
gaoyu-test,注意:命名空间是唯一的,不能重复);
- 左侧菜单 → 命名空间 → 创建命名空间(如
- 获取阿里云镜像仓库地址和登录信息:
- 左侧菜单 → 镜像仓库 → 创建仓库(如
mycentos),创建后可看到「公网地址」(如registry.cn-hangzhou.aliyuncs.com/gaoyu-test/mycentos)。
- 左侧菜单 → 镜像仓库 → 创建仓库(如
步骤 1:登录阿里云镜像仓库(终端执行)
# 格式:docker login 阿里云镜像仓库域名
docker login registry.cn-hangzhou.aliyuncs.com
- 用户名:阿里云账号的「AccessKey ID」(不是登录名,需在阿里云「AccessKey 管理」中创建);
- 密码:阿里云账号的「AccessKey Secret」;
- 输出
Login Succeeded表示登录成功。
步骤 2:给镜像打阿里云标签(核心!格式必须匹配)
格式:docker tag 本地镜像名:版本 阿里云仓库地址:版本
# 示例:本地 mycentos:1.0 → 阿里云仓库 registry.cn-hangzhou.aliyuncs.com/gaoyu-test/mycentos:1.0
docker tag mycentos:1.0 registry.cn-hangzhou.aliyuncs.com/gaoyu-test/mycentos:1.0
步骤 3:推送镜像到阿里云
docker push registry.cn-hangzhou.aliyuncs.com/gaoyu-test/mycentos:1.0
- 国内网络推送速度远快于 DockerHub;
- 输出
digest: xxxxxxxx表示推送成功。
步骤 4:验证(可选)
登录阿里云容器镜像服务网页,在「镜像仓库」→ 对应仓库中能看到 1.0 版本的镜像,即发布成功。
三、关键注意事项(避坑指南)
- 标签格式错误 :
- DockerHub 标签必须是「用户名 / 仓库名:版本」,否则推送失败;
- 阿里云标签必须包含「地域域名 / 命名空间 / 仓库名:版本」,地域域名(如
registry.cn-hangzhou.aliyuncs.com)需和仓库创建时的地域一致。
- 登录失败 :
- DockerHub 登录失败:检查用户名密码,或网络是否能访问外网;
- 阿里云登录失败:必须用「AccessKey ID/Secret」,不能用阿里云登录密码!
- 镜像体积过大 :推送前建议清理镜像缓存(如
yum clean all),减小体积,加快推送速度。 - 私有 / 公共仓库 :
- DockerHub 默认是公共仓库,所有人可见;
- 阿里云可选择「私有仓库」(仅自己可见),需在创建仓库时设置。
四、拉取已发布的镜像(验证)
1. 拉取 DockerHub 镜像
docker pull gaoyu/mycentos:1.0
2. 拉取阿里云镜像
docker pull registry.cn-hangzhou.aliyuncs.com/gaoyu-test/mycentos:1.0
总结
- 发布核心步骤:登录仓库 → 打合规标签 → 推送镜像,DockerHub 和阿里云逻辑一致,仅标签格式 / 登录信息不同;
- DockerHub 需用「用户名」打标签,阿里云需用「地域域名 + 命名空间」打标签;
- 阿里云登录必须用 AccessKey,而非阿里云账号密码,这是最容易踩坑的点。