Docker内部结构

我已经开始使用Docker,但是我想更好地理解它(更好一点)。 所以,我正在寻找一本书/文章来获取内部信息(在操作系统级别)。 我认为这不是一件容易的事情,但应该比实际的虚拟化更容易。

我要求引用任何书/一篇文章。 我试图find任何书,但我没有find有关Docker内部的东西。

Docker并没有真正的内部 。 它只是一个golang二进制文件,围绕着已经存在于内核中的一些工具,比如:

  • cgroups限制应用程序可用资源
  • 命名空间来提供与其他容器的隔离
  • Union Filesystems提供快速,轻量的存储访问

我会推荐阅读关于这三种技术是如何工作的,然后再试图理解docker是干什么的,因为docker只是为这些技术提供了一个更易于访问的API /命令行工具。

以下是进一步阅读的链接:

https://docs.docker.com/engine/understanding-docker/#/the-underlying-technology

https://washraf.gitbooks.io/the-docker-ecosystem/content/Chapter%201/Section%203/techniques_behind_docker.html

https://www.safaribooksonline.com/library/view/using-docker/9781491915752/ch04.html

作为@Frap链接(命名空间,cgroups,UFS),但也看看docker的存储驱动程序https://docs.docker.com/engine/userguide/storagedriver/selectadriver/

如果你想在引擎盖下高峰,这里有一个不错的项目https://github.com/mhausenblas/cinf

另一部分注意的是docker和存储驱动程序的networking端等docker文档是一个合理的入门这个https://docs.docker.com/engine/userguide/networking/