docker-18.09.7源碼編譯

第一步:安裝社區版本docker
1、$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

2、在/etc/apt/sources.list.d/docker.list文件中添加下面內容

deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

3、添加祕鑰

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4、安裝docker-ce

sudo apt install docker-ce

第二步:編譯docker-18.09.7版本

1、apt-get install gcc pkg-config btrfs-tools

2、進入到 $GOPATH/src/github.com/docker/docker 目錄下

執行命令 VERSION=18.09.7 DOCKER_GITCOMMIT=1 ./hack/make.sh binary 完成

Package devmapper was not found in the pkg-config search path.
Perhaps you should add the directory containing `devmapper.pc'
to the PKG_CONFIG_PATH environment variable
No package 'devmapper' found
Removing bundles/

---> Making bundle: binary (in bundles/binary)
Building: bundles/binary-daemon/dockerd-18.09.7
Created binary: bundles/binary-daemon/dockerd-18.09.7
 

ps: 可以選擇指定存儲引擎。只需要在命令前面加上這句,DOCKER_GRAPHDRIVER=overlay2

其中 VERSION 是構建後的 docker版本,比如上面的 18.09.3

構建完成後進入目錄:$GOPATH/src/github.com/docker/docker/bundles/binary-daemon

目錄下的 dcoker-dev 就是 docker-daemon,使用 ls -l 命令看到這裏已經創建了軟連接 docker-dev -> dockerd

2、安裝containerd

apt-get install containerd

3、查看 docker 服務文件位置, systemctl cat docker.service (前提是已經通過 apt-get install 安裝過了 docker)

在輸出的第一行中,提示有服務文件位置,我的是 /lib/systemd/system/docker.service

打開文件,找到行 ExecStart= /usr/bin/dockerd xxxx....

替換命令行中的 /usr/bin/dockerd 服務文件,這個文件是通過 apt-get install 安裝的 docker engine

替換成 $GOPATH/src/github.com/docker/docker/bundles/binary-daemon/dockerd

注意:$GOPATH替換成絕對路徑。如果不知道,使用 echo $GOPATH 就能看到了

4、重啓docker

替換後使用 systemctl daemon-reload  命令重載

執行命令, systemctl start docker 啓動引擎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章