命令
docker commit
描述
Create a new image from a container’s changes
根据容器的更改创建新的镜像
用法
1
| docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
|
选项
1 2 3 4 5
| Options: --author , -a 指定作者 --change , -c 指定修改的Dockerfile参数,支持指令CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR --message , -m 提交备注信息 --pause , -p 创建镜像时暂停容器,可选参数true或false,默认为true
|
注意
无
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| $ docker run --name nginx -it -d -p 80:80 nginx:1.20.1-alpine $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a8c31015e674 nginx:1.20.1-alpine "/docker-entrypoint.…" 3 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp nginx
$ docker exec -it nginx /bin/sh / / $ curl localhost docker
$ docker commit nginx demo_nginx:v1 sha256:5f1ab458849a0d70f4ef6d69983f39ce35c694b5539e32dd88b090a7e68ad198 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE demo_nginx v1 5f1ab458849a 4 seconds ago 22.7MB nginx 1.20.1-alpine 4146b18ae794 6 months ago 22.7MB
$ docker stop nginx $ docker run --name demo_nginx -it -d -p 80:80 demo_nginx:v1 $ curl localhost docker
$ docker inspect -f "{{ .Config.Env }}" demo_nginx [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=1.20.1 NJS_VERSION=0.5.3 PKG_RELEASE=1]
$ docker commit --change "ENV DEBUG=true" demo_nginx demo_nginx:v2 sha256:8ee210f7ce068f100f30b740e9b2049ba18170efdd6abf7e3e64136f35858c3b $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE demo_nginx v2 8ee210f7ce06 4 seconds ago 22.7MB demo_nginx v1 5f1ab458849a 5 minutes ago 22.7MB nginx 1.20.1-alpine 4146b18ae794 6 months ago 22.7MB
$ docker inspect -f "{{ .Config.Env }}" demo_nginx:v1 [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=1.20.1 NJS_VERSION=0.5.3 PKG_RELEASE=1] $ docker inspect -f "{{ .Config.Env }}" demo_nginx:v2 [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=1.20.1 NJS_VERSION=0.5.3 PKG_RELEASE=1 DEBUG=true]
|