Docker 的基本组成

Docker 的组成

  • Docker Client 客户端
  • Docker Daemon 守护进程
  • Docker Image 镜像
  • Docker Registry 仓库

Docker C/S架构
docker访问 本地 / 远程
Docker image 镜像 容器的基石
容器基于镜像启动和运行,镜像就好比容器的源代码保存了用于启动容器的各种条件

docker镜像是一个层叠的只读文件系统:

Docker 的基本组成_第1张图片
他的最低端是一个引导文件系统既:
bootfs ,这很像典型的 linux 文件的引导系统,docker用户几乎永远不会和引导文件系统有交互,实际上当一个容器启动后,他将会被移到内存中,而引导文件系统将会被卸载。
镜像的第二层是rootfs 文件系统
他可以是一种或者是多中的系统(例:Contos),永远是只读状态
联合加载技术(union mount)
一次加载多个文件系统,但是在外面看起来,只能看到一个文件系统,联合加载会将各层文件系统叠加到一起,让最终的文件系统包含所有的底层文件和目录,docker将这样的文件系统称为镜像。
一个镜像可以放到另一个镜像的顶部,位于下面的镜像称为父镜像,可以以此类推,直到镜像占的最底部称为基础镜像,也就是图中所示的 rootfs 文件系统。

Docker Container 容器

通过镜像启动:

容器通过镜像启动,Docker的容器是Docker的执行单元。容器中可以运行客户的一个或者多个进程。如果说镜像Docker生命周期中的构建和打包阶段那么容器则是启动和执行阶段,那么容器是怎样的通过镜像启动的呢?

启动和执行:

Docker 的基本组成_第2张图片
当一个容器启动时,Docker会在该镜像的最顶层,加载一个读写文件系统,也就是可写层,我们在Docker运行的程序也就是在这里运行的(可写层),Docker第一次启动一个容器时,初始的读写层是空的,当应用系统发生变化时,这些变化都会应用到这一层。
比如:修改一个文件,可写层先在只读层复制过来,然后做修改,同时将只读层的文件系统隐藏。(这叫做写时复制(copy on write))

仓库

Docker 用仓库保存用户构建的镜像
仓库类型:公有(Docker Hub),私有
Docker 的基本组成_第3张图片Docker 在线演示地址:
https://www.docker.com/tryit/

你可能感兴趣的:(Docker 的基本组成)