- 说明
- 下载daemon源码
- 使用root用户启动vscode
- 安装docker daemon依赖的库
- btrfs
- devmapper
- 停止原本的docker daemon
- 调试源码
github各种资源的gitee官方镜像
20版本的docker,daemon和client是分开了的,分别是moby项目和docker-cli项目。
需要分开调试。
17版本的docker,daemon和client都是moby项目,分支是17。
这里以调试daemon为例。
下载daemon源码在go的gopath目录下
mkdir src cd src mkdir github.com cd github.com mkdir docker cd docker
moby(gitee镜像,每日更新)
在gopath目录中的$/src/github.com/docker/目录中,使用git clone下载源码。下载下来的源码文件名叫moby,不正确,需要将moby重命名为docker。
git clone https://gitee.com/mirrors/moby.git mv moby/ docker/使用root用户启动vscode
sudo code --no-sandbox --user-data-dir=.vscode安装docker daemon依赖的库 btrfs
去deb下载网站搜索btrfs-tools包
https://launchpad.net/ubuntu/+source/btrfs-tools/4.4-1ubuntu1.1
选择对应的,一般的家用电脑amd64
下载这个:
懒人请点这里,直接下载。https://launchpad.net/ubuntu/+source/btrfs-tools/4.4-1ubuntu1.1/+build/17414143/+files/btrfs-tools_4.4-1ubuntu1.1_amd64.deb
去deb下载网站搜索libdevmapper包
搜出来的是lvm2包(这个包就是libdevmapper包)
lvm2可以直接使用apt-get install lvm2安装。
如果还是报错,说没有devmapper.pc,则继续往下。
https://launchpad.net/ubuntu/+source/lvm2/2.03.11-2ubuntu4~ubuntu20.04.1
点击amd64
下载上图的几个deb包。
安装deb包(图中顺序是,从下往上。)
sudo dpkg -i lvm2_2.03.11-2ubuntu4~ubuntu20.04.1_amd64.deb sudo dpkg -i liblvm2-dev_2.03.11-2ubuntu4~ubuntu20.04.1_amd64.deb sudo dpkg -i libdevmapper1.02.1_1.02.175-2ubuntu4~ubuntu20.04.1_amd64.deb sudo dpkg -i libdevmapper-event1.02.1_1.02.175-2ubuntu4~ubuntu20.04.1_amd64.deb sudo dpkg -i libdevmapper-dev_1.02.175-2ubuntu4~ubuntu20.04.1_amd64.deb
安装过程可能会出现缺少依赖包,则直接apt-get install缺少的包。
如果还是安装不上,则使用命令
apt --fix-broken install
随后就可以快乐的调试docker daemon了
停止原本的docker daemonsystemctl stop docker.service调试源码
把$gopath/src/github.com/docker/docker/cmd/dockerd目录拖到vscode中。
然后调试。



