docker 容器的数据大小 docker容器多大_docker 容器的数据大小


Docker是一个容器化引擎,它本身是C/S结构的。那什么又是容器化引擎,我们看一个图来理解Docker帮助我们做了什么。

相信大家都用过VM虚拟机,传统情况下虚拟机上部署一个应用的结构是这样的。我们再虚拟机只上构造系统,以系统为基本单位。这样的话就出现了一个问题,一个分配20g内存的系统它跑一个应用,它肯定是用不完20g的内存,势必会造成资源浪费等问题。

docker 容器的数据大小 docker容器多大_分布式_02


Docker是怎么做的呢,Docker提供了容器(Container),我们通常直接把应用部署在容器中,一个操作系统可以同时创建并维护多个容器容器启动速度非常快(秒级启动),且占用资源远低于一个操作系统,同时它又方便管理(秒级创建和删除)

Docker上跑应用只依赖于容器,这一点是不是有点像JAVA的平台无关性,只要装有Docker,你一次构建的应用可以到处运行。

docker 容器的数据大小 docker容器多大_分布式_03


现在留下了一个问题,什么是Docker容器,它是通过Docker镜像(Image)构建的,那么镜像又是什么,镜像就是像是,而容器就是通过类创建的对象

Docker官方提供了各种各样的镜像,像是tomcat镜像ngix镜像ubantu镜像。你可以通过镜像来创建容器,从而很方便快捷的构建你的应用。

docker 容器的数据大小 docker容器多大_分布式_04


Docker镜像有一个特点,它是分层构建的。怎么样的分层呢,如图下载两个镜像分别是tomcat8和tomcat9,假设它把tomcat的架构分成了4层,而8和9这两个版本只有最上两层不同,那么在下载时候为了节省空间,它只下载一次相同层,在你创建tomcat8和tomcat9容器时候,用的镜像底层实际上用的是同一个。这一点在你定制镜像的时候就有明显感受。

docker 容器的数据大小 docker容器多大_java_05


最后放一张Docker引擎的结构图。

docker 容器的数据大小 docker容器多大_分布式_06