Docker基础深度解析
1. Docker内部架构
Docker最初使用Linux Containers(LXCs)来实现进程隔离。Linux cgroups和namespaces是LXC背后的两大基础技术,不过是由Linux内核而非LXC来实现cgroups和namespaces。2013年Docker首次发布时,包含基于LXC实现的Docker守护进程。从0.9版本开始,LXC的使用变为可选,到1.10版本之后,Docker不再将LXC作为执行环境。
Docker公司开发的Libcontainer取代了LXC,如今它是Docker的默认执行环境。构建Libcontainer的动机是直接访问内核级构造来构建和运行容器,而无需通过LXC(因为LXC并非Linux内核的一部分)。Libcontainer是一个能在Linux内核层面与cgroups和namespaces进行交互的库。
除了不再支持LXC,Docker还致力于拆分单体的Docker守护进程并剥离部分功能,这也是Moby项目的动机所在。以下是Docker内部架构图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(Client):::process -->|docker build| B(Host):::process
B --> C(Docker Daemon):::process
C --> D(containerd):::process
D --> E(containe
超级会员免费看
订阅专栏 解锁全文
1081

被折叠的 条评论
为什么被折叠?



