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

`docker commit`和`docker tag`

1.`docker commit`
`docker commit`是一个 Docker 命令,用于将一个正在运行的容器(Container)的状态提交为一个新的镜像(Image)。这类似于在版本控制系统中提交更改。
作用

• 当你对一个容器进行了修改(例如安装了软件、修改了配置文件等),你可以使用`docker commit`将这些更改保存为一个新的镜像。

• 这样,你可以基于这个新镜像创建更多的容器,而不需要重复相同的修改过程。


使用方法

```bash
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
```
• `CONTAINER`:要提交的容器的 ID 或名称。

• `REPOSITORY[:TAG]`:新镜像的仓库名称和标签。如果不指定,镜像将被标记为`none`。
假设你有一个正在运行的容器`my-container`,你在这个容器中安装了一些软件,并希望将这些更改保存为一个新的镜像:
docker commit my-container my-new-image:latest
• 这将创建一个名为`my-new-image`的新镜像,标签为`latest`。


2.`docker tag`
`docker tag`是一个 Docker 命令,用于为现有的镜像添加一个新的标签(Tag)。标签是镜像的版本标识,例如`latest`、`v1`等。

• 一个镜像可以有多个标签,这使得你可以更灵活地管理镜像的版本。

• 例如,你可以为同一个镜像添加`latest`和`v1.0`两个标签,分别表示最新版本和特定版本。


docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
• `SOURCE_IMAGE[:TAG]`:源镜像的名称和标签。

• `TARGET_IMAGE[:TAG]`:目标镜像的名称和标签。
假设你有一个镜像`my-new-image:latest`,你希望为它添加一个新的标签`v1`:
docker tag my-new-image:latest my-new-image:v1


• 这将为`my-new-image`镜像添加一个新的标签`v1`。


3.将镜像推送到 Harbor 仓库的完整流程
Harbor 是一个开源的 Docker 镜像仓库,用于存储和管理 Docker 镜像。以下是将镜像推送到 Harbor 仓库的详细步骤:
步骤 1:登录到 Harbor 仓库
在推送镜像之前,需要先登录到 Harbor 仓库。使用以下命令:
docker login <harbor-url>
• `<harbor-url>`:Harbor 仓库的地址,例如`http://harbor.example.com`。

• 系统会提示你输入用户名和密码,这些是你的 Harbor 账户凭证。


步骤 2:为镜像添加 Harbor 仓库的路径
在推送镜像之前,需要将镜像的名称修改为包含 Harbor 仓库路径的完整名称。例如:

```bash
docker tag my-new-image:v1 <harbor-url>/my-project/my-new-image:v1
```
• `<harbor-url>`:Harbor 仓库的地址。

• `my-project`:Harbor 中的项目名称。

• `my-new-image:v1`:镜像的名称和标签。


步骤 3:推送镜像到 Harbor 仓库
使用以下命令将镜像推送到 Harbor 仓库:

```bash
docker push <harbor-url>/my-project/my-new-image:v1
```
• 如果推送成功,你可以在 Harbor 的 Web 界面中看到这个镜像。


步骤 4:(可选)在 Harbor 中管理镜像
登录到 Harbor 的 Web 界面,你可以查看、删除或管理推送的镜像。
示例
假设你的 Harbor 仓库地址是`http://harbor.example.com`,项目名称是`my-project`,镜像名称是`my-new-image`,标签是`v1`,以下是完整的操作流程:


• 登录到 Harbor 仓库:

```bash
   docker login http://harbor.example.com
   ```

• 为镜像添加 Harbor 仓库的路径:

```bash
   docker tag my-new-image:v1 http://harbor.example.com/my-project/my-new-image:v1
   ```

• 推送镜像到 Harbor 仓库:

```bash
   docker push http://harbor.example.com/my-project/my-new-image:v1
   ```

总结

• `docker commit`:将容器的状态提交为一个新的镜像。

• `docker tag`:为现有的镜像添加一个新的标签。

• 推送镜像到 Harbor:

• 登录到 Harbor 仓库。

• 为镜像添加 Harbor 仓库的路径。

• 推送镜像到 Harbor 仓库。

相关文章:

  • 各类神经网络学习:(三)RNN 循环神经网络(中集),同步多对多结构的详细解释
  • Nginx代理本机的443到本机的8080端口
  • 基于DeepSeek-R1 的RAG智能问答系统开发攻略
  • 数据结构之栈的2种实现方式(顺序栈+链栈,附带C语言完整实现源码)
  • 第一天 UnityShader的结构
  • 对敏捷研发的反思,是否真是灵丹妙药?
  • Linux 文件系统的日志模式与性能影响
  • Springboot整合Netty简单实现1对1聊天(vx小程序服务端)
  • 跨平台IPC通信、嵌入式WebRTC轻量化引擎:解析EasyRTC在ARM/Linux平台的性能突破
  • 深入了解 C# 中的 LINQ:功能、语法与应用解析
  • 【视频】m3u8相关操作
  • FRP安全机制与风险防范
  • 回溯-单词搜索
  • 刘强东突然发声:不该用算法压榨最底层兄弟!东哥,真正的人民企业家
  • 今日行情明日机会——20250321
  • CHM(ConcurrentHashMap)中的 sizeCtl 的作用与值变化详解
  • QT 图表(拆线图,栏状图,饼状图 ,动态图表)
  • 算法系列——有监督学习——5.支持向量机(核方法)
  • Eplan许可分析
  • flutter 专题 九十 四 Flutter开发之基础知识
  • 十四届全国人大常委会第十五次会议在京闭幕
  • 中方拟解除对5名欧洲议会议员制裁?外交部:望中欧立法机构相向而行
  • 融创服务全面退出彰泰服务集团:约8.26亿元出售广西彰泰融创智慧80%股权
  • 张炜琳已任三明市委常委、宣传部部长
  • 游客曝九寨沟打网约车被出租车围堵,官方:前者违规,后者做法不对
  • “乐购浦东”消费券明起发放,多个商家同期推出折扣促销活动