Docker是什么?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(高内聚低耦合)。
Docker的架构
Docker使用C/S架构模式,使用远程API来管理和创建Docker容器。Docker容器通过Docker镜像来创建。容器和镜像的关系类似于Java中的对象和类。
Docker Daemon作为服务端接受来自客户的请求,并处理这些请求(创建,运行,分发容器)。客户端和服务端可以运行在一台机器上,也可以运行在不同的机器上通过socket/Restful来通信。Docker deamon通常在宿主机后台运行,等待接收来自客户端的消息。
Docker的三大要素
1)镜像:镜像是容器构建的基石,由一系列指令构建,是一种轻量级、可执行的独立软件包,用于打包软件运行环境和基于运行环境开发的软件(代码、运行时、库、环境变量和配置文件)。典型的Linux文件系统由bootfs和rootfs两部分组成,bootfs(boot file system)主要包含 bootloader和kernel,bootloader主要是引导加载kernel,当kernel被加载到内存中后 bootfs就被umount了。 rootfs (root file system) 包含的就是典型 Linux 系统中的/bin,/etc等标准目录和文件,rootfs就是不同操作系统的发行版。Docker的镜像加载时,在bootfs自检完毕之后并不会把rootfs的read-only改为read-write。而是利用联合加载union mount(U