【docker】深入探讨container,通过container生成image

2023-05-16

深入探讨container

对于上图的理解:

        image其实是由一层一层的layer来组成的,最底层基于linux内核在上面加了一层一层的layer,从docker仓库pull的image是由Dockerfile来生成,这个image是只读的不可更改的,container是由images运行而来的,可以理解为container是在images层上又加了一层,只不过container层是可以进行读写的.

        思考:类比java反编译,我们可以使用image得到container,那么我们能不能使用container得到image呢?

        下面我们就来进行验证:

1.docker pull tomcat

    拉取一个tomcat image

2.docker run -d --name my-tomcat -p 8082:8080 tomcat

    运行tomcat container

3.docker exec -it my-tomcat /bin/bash

    进入tomcat并查看tomcat目录

4.创建目录 my-home,退出tomcat

5.docker commit my-tomcat my-home-tomcat

    将其生成一个新的image,命名为my-home-tomcat

6.docker run -d --name my-home-tomcat-01 -p 8083:8080 my-home-tomcat

    基于my-home-tomcat这个image重新运行一个container

7.进入my-home-tomcat-01 container,并查看文件列表,发现是存在my-home目录的

 结论:可以使用docker commit命令基于container来生成一个image,这时候可以对container来做一些定制化的操作,但是一般不

建议使用此方式生成image.

 

container的一些常见命令:

根据镜像创建容器: docker run -d --name -p 9090:8080 my-tomcat tomcat

查看运行中的container: docker ps

查看所有的container[包含退出的]: docker ps -a

删除container: docker rm containerid docker rm -f $(docker ps -a) 删除所有container

进入到一个container中: docker exec -it container bash

根据container生成image: docker commit my-tomcat my-home-tomcat

查看某个container的日志: docker logs container

查看容器资源使用情况: docker stats

查看容器详情信息: docker inspect container

停止/启动容器: docker stop/start container

 


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【docker】深入探讨container,通过container生成image 的相关文章

随机推荐