Skip to content

Latest commit

History

History
105 lines (67 loc) · 4.53 KB

File metadata and controls

105 lines (67 loc) · 4.53 KB

commit

Create a new image from a container's changes

Aliases

docker container commit, docker commit

Options

NameTypeDefaultDescription
-a, --authorstringAuthor (e.g., John Hannibal Smith <hannibal@a-team.com>)
-c, --changelistApply Dockerfile instruction to the created image
-m, --messagestringCommit message
--no-pauseboolDisable pausing container during commit

Description

It can be useful to commit a container's file changes or settings into a new image. This lets you debug a container by running an interactive shell, or export a working dataset to another server.

Commits do not include any data contained in mounted volumes.

By default, the container being committed and its processes will be paused while the image is committed. This reduces the likelihood of encountering data corruption during the process of creating the commit. If this behavior is undesired, set the --pause option to false.

The --change option will apply Dockerfile instructions to the image that's created. Supported Dockerfile instructions: CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR

Examples

Commit a container

$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky197387f1b436 ubuntu:24.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit c3f279d17e0a svendowideit/testimage:version3f5283438590d
$ docker imagesREPOSITORY TAG ID CREATED SIZEsvendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB

Commit a container with new configurations (--change)

$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky197387f1b436 ubuntu:24.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker inspect -f "{{ .Config.Env }}" c3f279d17e0a[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
$ docker commit --change "ENV DEBUG=true" c3f279d17e0a svendowideit/testimage:version3f5283438590d
$ docker inspect -f "{{ .Config.Env }}" f5283438590d[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]

Commit a container with new CMD and EXPOSE instructions

$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky197387f1b436 ubuntu:24.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a svendowideit/testimage:version4f5283438590d
$ docker run -d svendowideit/testimage:version489373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0
$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES89373736e2e7 testimage:version4 "apachectl -DFOREGROU" 3 seconds ago Up 2 seconds 80/tcp distracted_fermatc3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky197387f1b436 ubuntu:24.04 /bin/bash 7 days ago Up 25 hours focused_hamilton