名称¶
podman-commit - 基于更改后的容器创建新镜像
语法¶
podman commit [选项] 容器 [镜像]
podman container commit [选项] 容器 [镜像]
描述¶
podman commit 基于已更改的 容器 创建镜像。可以使用 --author 选项设置镜像作者。可以使用 --change 选项配置各种镜像指令,并可以使用 --message 选项设置提交消息。在提交镜像时, 容器 及其进程不会暂停。如果不需要这样做,可以将 --pause 选项设置为 true。提交完成后,Podman 会打印出新镜像的 ID。
如果 image
不以注册表名称组件开头,则会在名称前添加 localhost
。如果未提供 image
,则创建镜像的 REPOSITORY
和 TAG
值将设置为 <none>
。
选项¶
--change, -c=instruction¶
将以下可能的指令应用于创建的镜像
CMD
ENTRYPOINT
ENV
EXPOSE
LABEL
ONBUILD
STOPSIGNAL
USER
VOLUME
WORKDIR
可以多次设置。
--config=ConfigBlobFile¶
将来自指定文件的容器配置合并到正在提交的镜像的配置中。文件内容应该是 Schema2Config 结构的 JSON 编码版本,该结构定义在 https://github.com/containers/image/blob/v5.29.0/manifest/docker_schema2.go#L67。
--format, -f=oci | docker¶
设置镜像清单和元数据的格式。当前支持的格式是 oci 和 docker。
默认值为 oci。
--iidfile=ImageIDfile¶
将镜像 ID 写入文件。
--include-volumes¶
将 podman create 和 podman run 命令的 --volume 或 --mount 选项添加到容器的任何卷都包含在提交的镜像中。
默认值为 false。
--message, -m=message¶
设置提交镜像的提交消息。
重要提示:oci
格式不支持 message 字段。
--pause, -p¶
在创建镜像时暂停容器。
默认值为 false。
--quiet, -q¶
抑制输出。
默认值为 false。
--squash, -s¶
将新构建的层压缩到单个新层中。
默认值为 false。
示例¶
从具有入口点和标签的容器创建镜像
$ podman commit --change CMD=/bin/bash --change ENTRYPOINT=/bin/sh --change "LABEL blue=image" reverent_golick image-committed
Getting image source signatures
Copying blob sha256:b41deda5a2feb1f03a5c1bb38c598cbc12c9ccd675f438edc6acd815f7585b86
25.80 MB / 25.80 MB [======================================================] 0s
Copying config sha256:c16a6d30f3782288ec4e7521c754acc29d37155629cb39149756f486dae2d4cd
448 B / 448 B [============================================================] 0s
Writing manifest to image destination
Storing signatures
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
从具有提交消息的容器创建镜像
$ podman commit -q --message "committing container to image"
reverent_golick image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
从具有作者的容器创建镜像
$ podman commit -q --author "firstName lastName" reverent_golick image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
在创建镜像时暂停正在运行的容器
$ podman commit -q --pause=true containerID image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
从具有默认镜像标签的容器创建镜像
$ podman commit containerID
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
从具有默认所需功能的容器创建镜像
$ podman commit -q --change LABEL=io.containers.capabilities=setuid,setgid epic_nobel privimage
400d31a3f36dca751435e80a0e16da4859beb51ff84670ce6bdc5edb30b94066
另请参见¶
podman(1), podman-run(1), podman-create(1)
故障排除¶
有关常见问题的解决方案,请参阅 podman-troubleshooting(7)。
历史¶
2017 年 12 月,最初由 Urvashi Mohnani 编写 umohnani@redhat.com