docker 源码分为两部分 cli 和 moby(docker)
tips: docker是从moby拷贝过去的;docker整体是一个C-S架构,cli客户端,docker服务端
docker-ce:https://github.com/docker/docker-ce
cli:https://github.com/docker/cli
moby: https://github.com/moby/moby
docker源码由go语言编写,并且未使用go mod方式管理依赖(使用gopath模式管理依赖),因此阅读docker源码的正确姿势如下:
首先在 GOPATH / src 下创建 github.com/docker 目录,然后 git clone cli moby 到这个目录,修改 moby 名称为 docker
mkdir -p $GOPATH/src/github.com/docker cd $GOPATH/src/github.com/docker git clone https://github.com/docker/cli git clone https://github.com/moby/moby mv moby docker
最后,打开goland阅读;
如需阅读对应版本的源码,可在docker, cli目录中 通过git checkout tag来切换代码版本,来阅读所需版本源码。(吐槽:而不是下载对应版本的zip文件)如下所示