为了学习docker的时候方便理解,先来了解一下虚拟机和docker的结构
容器架构 虚拟机架构
上图来源:https://www.docker.com/resources/what-container
docker省去了Hypervisor层的资源消耗,并且是基于内核的cgroup和namespace技术
Docker引擎
Docker Engine是具有以下主要组件的客户端-服务器应用程序:
-
服务器是一种长期运行的程序,称为守护程序进程(
dockerd
命令)。 -
REST API,它指定程序可以用来与守护程序进行通信并指示其操作的接口。
-
命令行界面(CLI)客户端(
docker
命令)。 -
-
CLI使用Docker REST API通过脚本或直接CLI命令来控制Docker守护程序或与Docker守护程序进行交互。许多其他Docker应用程序都使用基础API和CLI。
-
守护程序创建和管理Docker 对象,例如图像,容器,网络和卷。
-
namespace的作用是做访问隔离
cgroup的作用是资源控制