Docker 基础 ( 七 ) commit 从容器创建一个新的镜像

创建镜像的两种方式

  1. commit 从容器创建一个新的镜像
  2. Dockerfile 就是用来构建 docker 镜像的构建文件 查看连接
docker commit 提交容器成为一个新的副本

# 命令和git原理类似
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[版本TAG]

tomcat为例,实战测试

  1. 启动一个默认的tomcat
[root@VM-0-6-centos ~]# docker run -itd -p 8086:8080 --name tomcat02 tomcat
cb49370e67688c30baacc30e863ba701f0c2e9947cdb98e789adbe1d23f0f99c
  1. 发现这个默认的tomcat 是没有webapps应用,官方的镜像默认webapps下面是没有文件的!
  2. 进入容器,从webapps.dist把拷贝文件进去webapp
    docker exec -it 容器id /bin/bash
[root@VM-0-6-centos ~]# docker exec -it cb49370e6768 /bin/bash  // 进入容器
root@cb49370e6768:/usr/local/tomcat# ls  // 查看文件
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@cb49370e6768:/usr/local/tomcat# cp -r webapps.dist/* webapps  // 拷贝文件
root@cb49370e6768:/usr/local/tomcat# cd webapps
root@cb49370e6768:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
  1. 查看浏览器,运行正常


  2. 将操作过的容器通过commit 为一个镜像!我们以后就使用我们修改过的镜像即可,而不需要每次都重新拷贝webapps.dist下的文件到webapps了,这就是我们自己的一个修改的镜像。
    docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]
[root@VM-0-6-centos ~]# docker commit -m="add webapps" -a="yj" cb49370e6768 tomcat-web
sha256:2405d360dd7c53e7859338443ce661fa9ca65b17e3d3bb37cfc0b355c2c119dc
[root@VM-0-6-centos ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED          SIZE
tomcat-web            latest    2405d360dd7c   15 seconds ago   672MB   //  新的镜像
tomcat                latest    5505f7218e4d   4 days ago       667MB
  • 如果你想要保存当前容器的状态,就可以通过commit来提交,获得一个镜像,就好比我们我们使用虚拟机的快照。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容