docker container commit
| Descripción | Crea una nueva imagen a partir de los cambios de un contenedor |
|---|---|
| Uso | docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] |
| Alias | docker commit |
Descripción
Puede ser útil confirmar (commit) los cambios de archivos o configuraciones de un contenedor en una nueva imagen. Esto te permite depurar un contenedor ejecutando una shell interactiva, o exportar un conjunto de datos de trabajo a otro servidor.
Los commits no incluyen ningún dato contenido en los volúmenes montados.
Por defecto, el contenedor que se va a confirmar y sus procesos se pausarán
mientras se crea la imagen. Esto reduce la probabilidad de sufrir corrupción de datos
durante el proceso de creación del commit. Si este comportamiento no es el deseado,
establece la opción --pause en false.
La opción --change aplicará instrucciones de Dockerfile a la imagen que se
cree. Instrucciones de Dockerfile admitidas:
CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR
Opciones
| Opción | Predeterminado | Descripción |
|---|---|---|
-a, --author | Autor (ej. John Hannibal Smith <[email protected]>) | |
-c, --change | Aplica la instrucción del Dockerfile a la imagen creada | |
-m, --message | Mensaje del commit | |
--no-pause | Deshabilita la pausa del contenedor durante el commit |
Ejemplos
Confirmar (commit) un contenedor
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:24.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit c3f279d17e0a svendowideit/testimage:version3
f5283438590d
$ docker images
REPOSITORY TAG ID CREATED SIZE
svendowideit/testimage version3 f5283438590d 16 seconds ago 335.7 MB
Confirmar (commit) un contenedor con nuevas configuraciones (--change)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 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:version3
f5283438590d
$ docker inspect -f "{{ .Config.Env }}" f5283438590d
[HOME=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]
Confirmar (commit) un contenedor con nuevas instrucciones CMD y EXPOSE
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 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:version4
f5283438590d
$ docker run -d svendowideit/testimage:version4
89373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
89373736e2e7 testimage:version4 "apachectl -DFOREGROU" 3 seconds ago Up 2 seconds 80/tcp distracted_fermat
c3f279d17e0a ubuntu:24.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:24.04 /bin/bash 7 days ago Up 25 hours focused_hamilton