docker commit
时间: 2023-07-03 11:27:32 浏览: 71
docker commit命令是用于将当前运行中的容器创建一个新的镜像。它的语法如下:
```
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
```
其中,OPTIONS包括:
- `-a`:指定镜像作者;
- `-m`:提交时附加的说明信息;
- `-c`:使用Dockerfile指令设置镜像的配置信息。
CONTAINER是要提交为镜像的容器ID或名称,REPOSITORY是要创建的镜像的仓库名称,TAG是镜像标签。
例如,如果有一个名为mycontainer的运行中的容器,可以使用以下命令将其提交为名为myimage的新镜像:
```
docker commit mycontainer myimage
```
相关问题
dockercommit
### 如何使用 `docker commit` 创建镜像
#### 准备工作
为了能够成功创建一个新的镜像,首先需要启动一个基于现有镜像的容器。例如,如果拥有一个 Ubuntu 镜像,则可以通过下面这条命令来运行它并获得交互式的 shell 访问权限[^4]。
```bash
docker run -it ubuntu /bin/bash
```
在这个例子中,`ubuntu` 是所使用的初始镜像名称;而 `/bin/bash` 表明希望在容器内执行 bash shell。一旦进入了容器内部环境之后,可以根据需求修改文件系统、安装额外的应用程序等操作。
#### 执行更改后的提交过程
完成必要的配置调整后退出容器(通常输入 exit 或者 Ctrl+D)。此时,在宿主机上会发现刚才的操作已经停止了该容器实例。接下来就是利用 `docker commit` 来保存这些变更到新的镜像当中去:
```bash
$ docker ps -a # 查看所有已停止和正在运行中的容器列表找到目标容器ID
CONTAINER ID IMAGE COMMAND CREATED
0d9f8b7c1eaa ubuntu "/bin/bash" About an hour ago
$ docker commit -m="Added some packages and configurations." --author="User Name" 0d9f8b7c1eaa my_new_image:latest
sha256:c3ab8ff13720e8ad9047dd39466b3c897abaeb...
```
上述命令说明:
- `-m`: 提交信息描述所做的改动;
- `--author`: 指定作者姓名或邮箱地址作为元数据的一部分;
- `<container_id>`: 替换成实际的目标容器标识符;
- `<new_repo_name>:<tag>`: 新生成镜像的名字及其标签版本号[^3]。
#### 验证新镜像的存在
最后一步是确认刚刚创建好的自定义镜像确实存在于本地仓库之中。这可通过调用 `docker images` 命令轻松做到:
```bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED
my_new_image latest c3ab8ff13720 Seconds ago
```
这样就完成了整个流程——从启动容器直至最终形成全新的 Docker 镜像[^2]。
"docker commit" requires at least 1 and at most 2 arguments. See 'docker commit --help'.
这个错误提示说明您在运行`docker commit`命令时没有提供足够的参数。`docker commit`命令用于将一个运行中的容器保存为一个新的镜像。它的语法如下:
```
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
```
其中,`CONTAINER`指定要保存为镜像的容器的ID或名称。`REPOSITORY`和`TAG`则是可选的,用于指定新镜像的名称和标签。如果不提供这两个参数,则默认使用容器的原始名称和`latest`作为标签。
因此,如果您收到了上述错误提示,可能是因为您没有正确提供`CONTAINER`参数。请确保您在运行`docker commit`命令时提供了要保存为镜像的容器的ID或名称。例如:
```
docker commit my_container my_image:latest
```
这将将名为`my_container`的容器保存为名为`my_image`的新镜像,标记为`latest`。
阅读全文
相关推荐













