Docker 是基于Google公推出的Go语言进行开发实现,基于Linux内核的 cgroupnamespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runCcontainerd
    image.png

    runc 是一个 Linux 命令行工具,用于根据 OCI容器运行时规范 创建和运行容器。 containerd 是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。

    传统虚拟化技术与Docker虚拟化技术对比
    image.png