podman-commit(1)
β¨ NAME β¨
podman-commit β create a new image based on the changed container π«Ά
π¦ SYNOPSIS π¦
podman commit [options] container [image]
podman container commit [options] container [image]
πΈ DESCRIPTION πΈ
Okay bestie, so podman commit is literally the glow-up button for your container π
β it creates an image based on a changed container. Iconic.
You can set the author of the image with the --author OPTION, no cap. Various image instructions can be configured with the --change OPTION, and a commit message can be set with the --message OPTION. The container and its processes are paused while the image is committed β like, full freeze-frame moment π β but if that's not the vibe, you can set the --pause OPTION to false. When the commit is complete, Podman prints out the ID of the new image. Slay.
So here's the tea π: if image does not begin with a registry name component, localhost is added to the name. And if image is not provided at all? The values for the REPOSITORY and TAG values of the created image are set to <none>. It's giving mysterious. It's giving unlabeled. π
π OPTIONS π
--author,-a=author β Set the author for the committed image. Like, credit the artist, bestie π¨--change,-c=instruction β Apply the following possible instructions to the created image:CMDENTRYPOINTENVEXPOSELABELONBUILDSTOPSIGNALUSERVOLUMEWORKDIR
Can be set multiple times, so go off π
--config=ConfigBlobFile β Merge the container configuration from the specified file into the configuration for the image as it is being committed. The file contents should be a JSON-encoded version of aSchema2Configstructure, which is defined athttps://github.com/containers/image/blob/v5.29.0/manifest/docker_schema2.go#L67. Very demure, very JSON π--format,-f=oci|dockerβ Set the format of the image manifest and metadata. The currently supported formats areocianddocker. The default isoci. Choose your fighter β--iidfile=ImageIDfile β Write the image ID to the file. So you don't lose it in the group chat π--include-volumesβ Include in the committed image any volumes added to the container by the--volumeor--mountOPTIONS to thepodman createandpodman runcommands. The default isfalse. Basically: do you want the extra baggage? Your call π§³--message,-m=message β Set commit message for committed image. IMPORTANT: Themessagefield is not supported inociformat. No cap, that's a real limitation π--pause,-pβ Pause the container when creating an image. Pausing a running container during commit prevents race conditions and potential security issues caused by other processes accessing the container's rootfs while the image is being created. The default istrue. Safety first, bestie π‘οΈ--quiet,-qβ Suppresses output. The default isfalse. For when you want your terminal to stfu π€«--squash,-sβ Squash newly built layers into a single new layer. The default isfalse. Marie Kondo that filesystem π§Ή
π₯ EXAMPLES π₯
Create image from container with entrypoint and label:
$ 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
Create image from container with commit message:
$ podman commit -q --message "committing container to image"
reverent_golick image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
Create image from container with author:
$ podman commit -q --author "firstName lastName" reverent_golick image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
Commit running container without pausing:
$ podman commit -q --pause=false containerID image-committed
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
Create image from container with default image tag:
$ podman commit containerID
e3ce4d93051ceea088d1c242624d659be32cf1667ef62f1d16d6b60193e2c7a8
Create image from container with default required capabilities:
$ podman commit -q --change LABEL=io.containers.capabilities=setuid,setgid epic_nobel privimage
400d31a3f36dca751435e80a0e16da4859beb51ff84670ce6bdc5edb30b94066
π SEE ALSO π
podman(1), podman-run(1), podman-create(1) β the whole squad π
π§ Troubleshooting π§
See podman-troubleshooting(7) for solutions to common issues. We've all been there π
π HISTORY π
December 2017, Originally compiled by Urvashi Mohnani β umohnani@redhat.com β¨mailto:umohnani@redhat.comβ©. Like, way before the rest of us were even doing crossword puzzles in the terminal π«Ά
This page comes straight from the General Commands Manual β shoutout to the source β and this exact version dropped in December 2017. Periodt. π
β¨
π¦ where this page comes from
- arch rolling: podman 6.1.4-1 Β· Apache-2.0
- centos-stream 10: podman 7:6.1.0-2.el10 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- nixpkgs unstable: podman 6.1.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms