把现有容器打包成镜像,供docker直接运行。
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-
-a :提交的镜像作者;
-
-c :使用Dockerfile指令来创建镜像;
-
-m :提交时的说明文字;
-
-p :在commit时,将容器暂停。
实例
- 查看现有容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bfe0ad01bbea tomcat:latest "catalina.sh run" About an hour ago Up 50 minutes 8080/tcp mytomcat
d612eb7d2a8f tomcat:latest "catalina.sh run" About an hour ago Up About an hour 8080/tcp mytomcat2
- 将mytomcat2打包成镜像
d612eb7d2a8f 是已有的CONTAINER ID;
cn-tomcat 是要生成的镜像名称;
v1.0 是要生成的镜像版本号;
[root@localhost ~]# docker commit -a "lvchn.com" -m "my new tomcat" d612eb7d2a8f cn-tomcat:v1.0
sha256:8df8f58c9a2193467bed2861b99f2d8bd982137c7039ef9c5c28848c62a3a9eb
- 查看docker images,发现多了一个刚生成的镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cn-tomcat v1.0 8df8f58c9a21 21 seconds ago 667MB
tomcat latest c43a65faae57 4 weeks ago 667MB
- 运行新的cn-tomcat镜像
这里的cn-tomcat:v1.0与docker images里的REPOSITORY:TAG保持一致;
[root@localhost ~]# docker run --name mytomcat3 -d cn-tomcat:v1.0
32b0318782e48b35d1fc46b989b8f2f2eb4390cc7a642bd35b8bc657bec79048
- 查看所有容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32b0318782e4 cn-tomcat:v1.0 "catalina.sh run" About a minute ago Up About a minute 8080/tcp mytomcat3
bfe0ad01bbea tomcat:latest "catalina.sh run" About an hour ago Up 59 minutes 8080/tcp mytomcat
d612eb7d2a8f tomcat:latest "catalina.sh run" About an hour ago Up About an hour 8080/tcp mytomcat2