为什么要阅读Docker源码?

作为一名开发人员,大量阅读好的开源项目代码是有助于提升自身水平及见解的,就类似于文学工作者经常需要阅读大量的书籍文献等等。
对于我自身来说,阅读源码无外乎以下三点:

  1. 参其内核,了解其内部实现原理。
  2. 提升自己对于Golang这门语言的理解,从开源项目中汲取最佳实践经验。
  3. 闲(逃

为什么是Docker?

Docker是我在工作中接触的最多的一个开源项目了,经常用来自己在本地搭建一些中间件的运行环境或代码调试环境,可以很好的跟本地系统环境隔离。
并且Docker的源码是使用Golang写的,整个项目代码中糟粕较少。

先决条件

在阅读Docker源码之前,必需拥有以下几个前提:

  1. 了解Golang
  2. 了解Docker中一些基本概念,最好使用过Docker
  3. 使用过Linux系统,最好对于Linux系统的一些基本概念有所了解

拿到源码

我是基于Moby这个版本来进行研读,如果你在跟着这系列的文章进行阅读,建议选择同样版本分支,保持改动一致,因为新的版本有很多的Feature将有可能本系列文章会覆盖不到。

1
git clone https://github.com/moby/moby.git

拉取完之后我们目前$GOPATH/github.com/moby目录下应该是如下这个结构:

1
2
.
└── moby

接下来我们可以用IDE(GoLand、Visual Studio Code等)来打开这个项目开始阅读。