名称

podman-commit - 基于已更改的容器创建新镜像

简介

podman commit [选项] 容器 [镜像]

podman container commit [选项] 容器 [镜像]

描述

podman commit 基于一个已更改的*容器*创建一个镜像。可以使用 --author 选项设置镜像的作者。可以使用 --change 选项配置各种镜像指令,并使用 --message 选项设置提交信息。在提交镜像时,*容器*及其进程不会被暂停。如果不希望这样,可以将 --pause 选项设置为 true。提交完成后,Podman 会打印出新镜像的 ID。

如果 image 不以注册中心名称部分开头,则会在名称前添加 localhost。如果未提供 image,则创建的镜像的 REPOSITORYTAG 值将被设置为 <none>

选项

--author, -a=作者

为提交的镜像设置作者。

--change, -c=指令

将以下可能的指令应用于创建的镜像

  • CMD

  • ENTRYPOINT

  • ENV

  • EXPOSE

  • LABEL

  • ONBUILD

  • STOPSIGNAL

  • USER

  • VOLUME

  • WORKDIR

可以设置多次。

--config=配置Blob文件

在提交镜像时,将指定文件中的容器配置合并到镜像的配置中。文件内容应为 Schema2Config 结构的 JSON 编码版本,该结构定义在 https://github.com/containers/image/blob/v5.29.0/manifest/docker_schema2.go#L67。

--format, -f=oci | docker

设置镜像清单和元数据的格式。当前支持的格式是 ocidocker
默认值为 oci

--iidfile=ImageIDfile

将镜像 ID 写入文件。

--include-volumes

将在 podman createpodman run 命令中使用 --volume--mount 选项添加到容器的任何卷包含在提交的镜像中。
默认值为 false

--message, -m=消息

为提交的镜像设置提交信息。
重要提示:oci 格式不支持消息字段。

--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 原始编译