目录
1. Docker实现Build,Ship and Run Any App Anywhere的原理
- 1. Docker实现Build,Ship and Run Any App Anywhere的原理
- 2. Docker的架构
- 在Linux、Windows、Mac上安装Docker。Linux上共用Linux的内核;Windows和Mac会虚拟出一个Linux内核出来
- 将应用所需的所有资源(操作系统发行版、运行依赖包、运行环境、配置环境、运行文档)打包成一个镜像,该镜像可以运行在任何系统任何服务器上的一个Docker容器中
- 容器直接运行于宿主机的内核。每个容器之间的计算资源互相隔离,每个容器有自己的文件系统。其实可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用
Docker运行的基本流程为:
- 用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者
- Docker Daemon作为Docker架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求
- Docker Engine执行Docker内部的一系列工作,每一项工作都是以一个Job的形式存在
- Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动Graph Driver将下载镜像以Graph的形式储存
- 当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置Docker容器网络环境
- 当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成
- Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作