docker commit的简单例子

commit镜像

前言

看到这里说明容器和镜像的命令你已经基本掌握了,那么就可以试着自己去修改一个镜像后生成一个新的镜像呀,有的人就会说了,使用官方的不好吗,干嘛要修改呀。这里我告诉你为什么,因为当你接触久了,你会发现有些镜像用着会很不爽,那么何不自己去修改下,自己在用着心里面也会极度舒畅滴。

docker commit 提交容器成为一个新的镜像

#docker commit -m=“提交的信息描述” -a=“作者” 容器ID 目标镜像名:[TAG]

实战测试
#1,启动一个默认的Tomcat
[root@yingxiong ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
tomcat       latest    c43a65faae57   3 days ago   667MB
nginx        latest    f0b8a9a54136   4 days ago   133MB
[root@yingxiong ~]# docker run -it c43a65faae57 /bin/bash

#2、发现这个默认的Tomcat是没有webapps应用的,镜像的原因,官方默认的
root@46697b8bef3d:/usr/local/tomcat# cd webapps
root@46697b8bef3d:/usr/local/tomcat/webapps# ls
root@46697b8bef3d:/usr/local/tomcat/webapps# 

#3、我自己手动添加基本的文件
root@358473c0c42f:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@358473c0c42f:/usr/local/tomcat# cd webapps
root@358473c0c42f:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
#4、将我们操作过的容器通过commit提交成新的容器
docker commit -a="yingyong" -m="add webapps" 46697b8bef3d tomcat02:1.0

#需要注意的是这里的ID是容器ID!!!

[root@yingxiong ~]# docker commit -a="yingxiong" -m="add webapps" 46697b8bef3d tomcat02:1.0
sha256:b4f6b530507d20185b6e689a3528397e94008f76733e0509560e1a1367d401a4
[root@yingxiong ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
tomcat02     1.0       b4f6b530507d   5 seconds ago   672MB  #要比原来的镜像体积要大
tomcat       latest    c43a65faae57   3 days ago      667MB
nginx        latest    f0b8a9a54136   4 days ago      133MB
[root@yingxiong ~]# 

#使用commit的好处;上手容易,只需要一条命令就可以快速制作一个镜像

#使用commit的坏处:因为docker镜像是使用的联合文件系统,是分层存储的,所以呢,你对镜像的每一次操作是不会影响上一层的镜 像的,这就导致随着你修改镜像的次数增加,你的镜像只会越来越大了。


总之,镜像里面的东西都是可以按照你的需要去修改的,最后镜像也是符合你的需求的就可以把它进行生成新的镜像

你可能感兴趣的:(容器云,docker)