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

`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 仓库。


http://www.kler.cn/a/598920.html

相关文章:

  • Java 对 PDF 文件添加水印
  • 基于SpringBoot的家庭财务管理系统(源码+数据库)
  • AI革命!蓝耘携手海螺AI视频,打造智能化视频新纪元
  • 2025年渗透测试面试题总结-某华为面试复盘 (题目+回答)
  • Django REST Framework 请求封装源码解析与实现流程
  • 数据结构:选择排序的实现
  • 【redis】主从复制:全量复制、部分复制、实时复制详解
  • 【Node.js入门笔记11---模块化】
  • ChatGPT vs DeepSeek vs Copilot vs Claude:谁将问鼎AI王座?
  • 【操作系统笔记】操作系统的功能
  • 【构建CV图像识别系统】从传统方法到深度学习
  • 二手Mac验机过程
  • leetcode_双指针 11. 盛最多水的容器
  • MySQL 调优:查询慢除了索引还能因为什么?
  • TCP协议原理
  • LeetCode(704):二分查找
  • 剖析C++中继承、多态的底层原理
  • 前端会话控制技术:cookie/session/token
  • 哈尔滨工业大学DeepSeek公开课人工智能:大模型原理 技术与应用-从GPT到DeepSeek|附视频下载方法
  • Sql Server数据迁移易错的地方