Docker镜像commit

Docker镜像commit

docker commit 提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID  要创建的目标镜像名:[标签名]

//在本机通过8888端口启动访问tomcat(也可以使用8080端口,此时为了区分改为8888端口)
docker run -it -p 8888:8080 tomcat
//此命令执行后在本机的浏览器中输入localhost:8888会出现tomcat的页面,表示执行成功

//使用随机端口访问tomcat
docker run -it -P tomcat 
//此命令执行后,可以使用 docker ps 命令查看tomcat的端口,然后在浏览器中输入localhost:查看到的tomcat的端口(例如,我的是32768),然后会出现tomcat的页面,表示执行成功

案例:
1.从Hub上下载一个tomcat镜像到本地并成功运行
	docker run -it -p 8888:8080 tomcat
2.故意删除上一步镜像生产tomcat容器的文档
    //进入上一步运行的tomcat容器
    docker exec -it 887d30854855 /bin/bash  //887d30854855为容器ID
    ls -l //查看当前目录下的目录,可以看到有一个目录为webapps
    cd webapps  //进入webapps此目录
    ls  //查看当前目录下的文件,可以看到有一个docs文件
    rm -rf docs  //删除docs此文件
//通过浏览器访问 localhost:8888 ,出现tomcat的页面,点击Documentation,此时会出现404页面,表示删除docs文件成功

3.当前的tomcat运行实例是一个没有说明文档的容器,以它为模板commit一个没有docs的tomcat新镜像 test/mytomcat01
    docker commit -a="gg" -m="tomcat without docs" 887d30854855 test/mytomcat01:1.2  //此时的 :1.2 表示是1.2版本 ,test/mytomcat01是对新镜像的命名
    docker ps  //可以看到两个tomcat,其中一个是从阿里云下载的,另外一个是自己刚才commit的,是没有说明文档的

4.启动新的镜像并和原来的镜像进行对比
	docker run -it -p 7777:8080  test/mytomcat01:1.2 
	//以7777端口启动自己提交的tomcat容器,通过浏览器访问localhost:7777,出现tomcat的页面,点击Documentation,此时会出现404页面,表示访问的是自己提交的tomcat容器
	docker run -it -p 7788:8080  tomcat
	//以7788端口启动tomcat容器,通过浏览器访问localhost:7788,出现tomcat的页面,点击Documentation,出现正常的说明文档,表示访问的是从阿里云下载的tomcat容器
原文地址:https://www.cnblogs.com/gujun1998/p/11954420.html