Docker基础概念——镜像和容器的区别
作为生信狗,相信大伙都对docker有一定的了解吧。什么?没了解?那还不快关注小果,认准生信果,历史文章里有docker的介绍。
书归正题!咱们来聊聊docker中镜像和容器概念的区别及技术细节,能帮助大家更好的使用docker。
在小果的认识中,docker的镜像是一堆只读层堆叠的文件系统,每一层都有一个指针指向下一层。
容器与镜像相似,唯一的区别在于容器多了一层可读写层,也就是说,容器=镜像+读写层。
所以当我们运行docker create <image-id>时,docker会为镜像添加一个可读写层,使其构成一个新的容器。
当我们运行docker start <container-id>命令时,docker会为容器文件系统创建一个进程隔离空间,貌似docker run <image-id>命令也有相同的效果,那么start和run有什么区别呢?
由图可知,docker run包含了两个行为,首先利用docker create从镜像创建一个容器,再使用docker start运行该容器,尽管run命令简化了操作细节,使其更加简便,但同时也更容易让用户对镜像和容器产生误解。
当然上述逻辑反过来也成立,当容器运行的过程中,对原始的镜像进行了改变,如安装了程序,添加了文件等操作,也可以通过commit命令提交回去成为镜像。
如果你对镜像与容器相关的概念、知识还有不理解的地方,欢迎大家留言与小果互动哟~
扫码关注我们
生信果
生信硬核知识解答
和小果一起学生信
小果友情推荐
好用又免费的工具安利