当前位置: 首页 > news >正文

将镜像推送到 Docker Hub 或私有仓库

概述

你已经学会了编写 Dockerfile 并构建出自己的镜像。
但这个镜像目前只存在于你的电脑上,别人无法使用,CI/CD 流水线也无法拉取。

要想让镜像被团队共享、在服务器上运行、或用于自动化部署,你需要把它推送到一个镜像仓库

什么是镜像仓库

镜像仓库(Registry) 是用来存储和分发 Docker 镜像的服务

常见的仓库类型:

类型举例适用场景
公共仓库Docker Hub开源项目、个人学习
私有仓库阿里云 ACR、腾讯云 TCR、Harbor企业内部、敏感项目

你可以把它理解为:

Docker 镜像的“GitHub”

推送到 Docker Hub(公共/私有)

  1. 注册 Docker Hub 账号
    访问 https://hub.docker.com,注册一个免费账号。

2.登录 Docker CLI
在终端登录你的 Docker Hub 账号:

docker login

输入你的 用户名密码

登录成功后,你就可以推送镜像了。

  1. 给镜像打标签(Tag)

Docker 要求推送的镜像必须有正确的命名格式:

<你的Docker Hub用户名>/<镜像名>:<标签>

例如:

docker tag my-node-app:1.0 your-dockerhub-username/my-node-app:1.0

如果不打标签,推送时会报错:denied: requested access to the resource is denied

  1. 推送镜像
docker push your-dockerhub-username/my-node-app:1.0

推送过程会显示每一层的上传进度

  1. 验证结果

打开浏览器,访问:

https://hub.docker.com/r/你的用户名/my-node-app

你应该能看到你刚刚推送的镜像

  1. 别人如何使用

其他人只需运行:

docker pull your-dockerhub-username/my-node-app:1.0
docker run -p 3000:3000 your-dockerhub-username/my-node-app:1.0

即可运行你的应用

推送到私有仓库

企业项目通常使用私有仓库,保证代码安全。
阿里云容器镜像服务(ACR) 为例

  1. 开通阿里云 ACR
  • 登录 阿里云控制台
  • 搜索“容器镜像服务”
  • 创建一个个人版实例(免费)
  1. 创建命名空间和镜像仓库
  • 创建命名空间(如 my-namespace
  • 在命名空间下创建镜像仓库(如 my-java-app
  1. 获取登录信息
    在 ACR 控制台找到:
  • 公网地址registry.cn-beijing.aliyuncs.com
  • 用户名密码(可在“访问凭证”中设置)
  1. 登录阿里云 Registry
docker login registry.cn-beijing.aliyuncs.com

输入用户名和密码

  1. 打标签

格式:

<公网地址>/<命名空间>/<镜像名>:<标签>
docker tag my-spring-app:1.0 registry.cn-beijing.aliyuncs.com/my-namespace/my-spring-app:1.0
  1. 推送镜像
docker push registry.cn-beijing.aliyuncs.com/my-namespace/my-spring-app:1.0

推送成功后,可在 ACR 控制台查看镜像

最佳实践

建议说明
使用语义化标签v1.0.0latestdev,避免用 latest 作为生产唯一标签
定期清理旧镜像避免仓库臃肿
私有仓库开启访问控制限制 IP、设置 RAM 权限
CI/CD 中自动推送使用 GitHub Actions、Jenkins 自动构建并推送

常见问题

Q:推送时提示 unauthorized: authentication required
A:检查是否 docker login 成功,用户名密码是否正确。

Q:镜像太大怎么办?
A:使用 .dockerignore、轻量基础镜像、多阶段构建优化。

Q:如何删除已推送的镜像?
A:在 Docker Hub 或私有仓库控制台中删除。

总结

步骤命令
登录仓库docker login <registry>
打标签docker tag <源镜像> <目标镜像>
推送镜像docker push <镜像名>

推送镜像不是可选项,而是现代开发的标配
它让镜像可共享、可复用、可自动化,是 CI/CD 和 Kubernetes 部署的基础

http://www.dtcms.com/a/529051.html

相关文章:

  • 做qq图片的网站吗wordpress没有链接地址
  • 面向模块的综合技术之重定时优化(六)
  • 社交模板网站建设成都青羊网站建设
  • Android 数据持久化(SharedPreferences)
  • 四、高效注意力机制与模型架构
  • 沧州做网站公司兰州网站建站
  • C++ STL:string类(1) |了解string|编码|常用接口|迭代器|算法查找|auto|范围for
  • ESP32 Linux 开发环境
  • 网站建设全国排名alexa排名前三十
  • 声乐基础知识学习
  • Redis底层原理-持久化【详细易懂】
  • 现在建网站可以拖拉式的吗深圳住房建设网站
  • 流量打不开网站怎么办营销型企业网站 网络服务
  • 如何用ps做网站ui如何在云主机上建设网站
  • 营销网站建设818gx做商城网站多少钱
  • 【C/C++】动态加载(dlopen)和直接链接 库的区别
  • 集团内部协同项目管理模式整理表
  • 基于yolov11的机场跑道异物检测系统python源码+pytorch模型+训练数据集+精美GUI界面
  • 【开题答辩全过程】以 滨海游泳馆管理系统为例,包含答辩的问题和答案
  • 阿里云网站实名认证设备租赁业务网站如何做
  • 2025年9月电子学会全国青少年软件编程等级考试(scratch图形化四级)真题及答案
  • 中国万网icp网站备案专题wordpress播放器问题
  • MATLAB图形绘制基础(一)二维图形
  • 软件开发和网站建设泰安网站设计
  • 一文读懂 AUTOSAR 中的 CAN 模块:通俗图解与发送接收全流程
  • 弹窗网站制作器中国空间站
  • 网站建设会议纪要wordpress创建页面地址设置
  • 软装设计素材网站地方宣传网站建设的必要性
  • Auto CAD二次开发——创建圆弧对象
  • 深度解析pose_add:三维空间位姿复合运算的核心实现