Docker的原理 Docker有三个核心组件,掌握这三个组件的概念有助于我们进一步了解Docker的工作机制。 ● 镜像:Docker Image,它是容器运行所需要的静态二进制文件和依赖包的集合,可以将它理解为一个面向Docker的只读模板,容器镜像基于分层的联合文件系统(UnionFS)实现。用户可以根据需求,通过DockerFile定制容器镜像,同时Docker提供了对镜像的各种API操作命令实现镜像版本管理的功能。 ● 容器:Docker Container,是从镜像创建的应用,是镜像的动态运行实例,Docker利用容器来运行和隔离应用。镜像自身是只读的,容器从镜像启动时在镜像最上层创建一个可写层,镜像本身保持不变,容器启动后以进程的方式运行。另外,Docker支持一个容器对应一个进程的方式,而这种方式也非常适合以单进程运行为主的微服务架构。 ● 仓库:Docker Repository,主要用来存放镜像,可以分为公有仓库和私有仓库。当用户创建了自己的镜像之后,就可以使用推送的方式将它上传到指定的公有仓库或私有仓库。这样用户下次在另一台机器上使用该镜像时,只需将其从仓库拉取下来就可以了。 这三个组件组成了Docker的整个生命周期,下图是三者之间的关系。
Docker采用C/S架构,下面是Docker的主要运行过程和原理图,同时涵盖了Docker的核心组件。 ● 首先,Client通过相应的Docker命令以及HTTP或REST API等方式与Docker Daemon实现Docker服务的使用与管理。 ● 其次,Docker Daemon作为服务端(部署在本地或者远程),负责监听Client的请求并管理Docker对象(容器、镜像、网络等),Docker Image提供容器运行所需的所有文件。 ● Docker Daemon通过访问容器镜像仓库,负责Docker镜像的存储管理。镜像仓库可以用DockerHub或者自建私有镜像仓库。 可以通过Docker push或pull操作往镜像仓库上传或下载镜像。
Docker构建部署过程 Docker构建部署过程主要包括下面三个步骤。 ● 构建:通过DockerFile来描述应用依赖的运行环境,包括操作系统、启动端口、执行脚步,通过编译运行DockerFile来生成Docker镜像,并放在本地仓库中。 ● 装载:将镜像推送(Push)到远端仓库。 ● 部署运行:从仓库拉取