Folia
← 返回头版

Docker 的技术特性解析

在开发容器运行时的过程中,一位开发者分享了对 Docker 底层机制的深入认识。1 容器的本质并非虚拟机,而是受到特殊限制的进程。1 具体而言,容器由 5 个不同的 Linux 内核特性组合而成,包括 Namespaces、cgroups 和网络隔离等机制。1

在镜像和根文件系统的实现上,Docker 使用相对简洁的方式处理——镜像本质上就是一个文件夹,Docker 通过 chroot 或 pivot_root 将其设置为容器进程的新根目录。1 容器运行时组件 runc 采用 Go 语言编写,但 Go 的多线程设计和缺少 fork 等特性为容器运行时带来了挑战。1 此外,Docker 守护进程通常需要以 root 权限运行。1 若要实现无根容器运行时,则需要在用户空间重新实现整个网络栈。1


来源

  1. Hacker NewsDocker is weird

评论