`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 仓库的地址,例如`http://harbor.example.com`。

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


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

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

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

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


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

```bash
docker push /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 仓库。

你可能感兴趣的:(docker,java,容器)