04-初识Docker-Docker架构
1.镜像和容器:
(1)镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
解释:
比如之前讲过的Mysql镜像,它里面肯定就会有各种各样所需要的依赖。这些东西最终落到硬盘就是一个一个的文件。比如说这里有Mysql运行时需要写数据的data目录文件,还有log日志文件,当然还有bin里面的可执行文件,这些就组成了Mysql应用的本身,还有就是mysql所需要的各种各样的函数库了,也就是说镜像就是硬盘中的文件。
(2)容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
容器又是怎么回事呢?
可以简单理解成,我们把这个Mysql应用给它跑起来,形成的这个进程就是容器。只不过在Docker里面,容器还要做隔离,也就是说我们的容器可以看做是一个小盒子,这个盒子里面将来会利用我们Linux的手段,给它形成隔离空间,里面会有自己独立的CPU资源,内存资源,甚至有还有独立的文件系统。那么因此在这个容器内运行的这个进程,它就会以为自己是这台计算机上的唯一进程,从而起到一种隔离的效果。那么将来我们的Mysql镜像,不管是启动成一个容器还是启动成多个容器,他们之间都是相互隔离的。
那么当容器运行的过程中,必然会做一种数据读写操作,比如说我们的Mysql将来肯定要去存数据,存到哪?存到data目录。他们能不能把自己的数据写到这个镜像的data目录里面呢?不