2021-05-12 14:32:11
Docker原始碼編譯
官方建議Docker原始碼編譯在Docker容器內進行,因為官方提供的容器內已經繼承了編譯需要的環境,如果非要自己搭建編譯環境也不是不可以,就是稍微有些繁瑣。以下以1.8.2版本為例。
1.pull docker-dev:1.8.2的映象
docker pull docker-dev:版本
具體版本可以檢視官網。
ps:該映象較大,可以考慮從國內映象下載。
2.建立目錄存放docker編譯後生成的資料夾
[root@myserv home]# mkdir -p /home/dockerbuild/bundles
[root@myserv home]# cd /home/dockerbuild/
3.執行pull得到的docker-dev映象,然後在容器裡進行docker的編譯工作
[root@myserv home]# docker run --rm -it --privileged
-e BUILDFLAGS -e DOCKER_CLIENTONLY -e DOCKER_EXECDRIVER -e DOCKER_EXPERIMENTAL
-e DOCKER_GRAPHDRIVER -e DOCKER_STORAGE_OPTS -e DOCKER_USERLANDPROXY -e TESTDIRS -e TESTFLAGS -e TIMEOUT
-v /home/dockerbuild/bundles:/go/src/github.com/docker/docker/bundles docker-dev:1.8.2 bash
root@87193e358c88:/go/src/github.com/docker/docker# hack/make.sh binary
---> Making bundle: binary (in bundles/1.8.2/binary)
Building: bundles/1.8.2/binary/docker-1.8.2
Created binary: bundles/1.8.2/binary/docker-1.8.2
4.檢視編譯輸出並驗證編譯結果
root@87193e358c88:/go/src/github.com/docker/docker# ls -l bundles/1.8.2/binary/
total 21104
lrwxrwxrwx 1 root root 12 Sep 15 10:20 docker -> docker-1.8.2
-rwxr-xr-x 1 root root 21599668 Sep 15 10:20 docker-1.8.2
-rw-r--r-- 1 root root 47 Sep 15 10:20 docker-1.8.2.md5
-rw-r--r-- 1 root root 79 Sep 15 10:20 docker-1.8.2.sha256
上述可以看到在容器內,bundles目錄已經有了編譯好的docker程式檔案了。退出容器後,在本機/home/dockerbuild/bundles/1.8.2/binary目錄下會得到一個編譯完畢的docker。
[root@myserv dockerbuild]# cd bundles/
[root@myserv bundles]# ls
1.8.2 latest
[root@myserv bundles]# cd 1.8.2/
[root@myserv 1.8.2]# ls
binary
[root@myserv binary]# ls -l
total 21104
lrwxrwxrwx 1 root root 12 Sep 15 18:20 docker -> docker-1.8.2
-rwxr-xr-x 1 root root 21599668 Sep 15 18:20 docker-1.8.2
-rw-r--r-- 1 root root 47 Sep 15 18:20 docker-1.8.2.md5
-rw-r--r-- 1 root root 79 Sep 15 18:20 docker-1.8.2.sha256
[root@myserv binary]# ./docker version
Client:
Version: 1.8.2
API version: 1.20
Go version: go1.4.2
Git commit: 0a8c2e3
Built: Tue Sep 15 10:20:40 UTC 2015
OS/Arch: linux/amd64
Error response from daemon: client and server don't have same version (client API version: 1.20, server API version: 1.19)
更多Docker相關教學見以下內容:
Docker安裝應用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm
Ubuntu 14.04安裝Docker http://www.linuxidc.com/linux/2014-08/105656.htm
Ubuntu使用VNC執行基於Docker的桌面系統 http://www.linuxidc.com/Linux/2015-08/121170.htm
阿里雲CentOS 6.5 模板上安裝 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm
Ubuntu 15.04下安裝Docker http://www.linuxidc.com/Linux/2015-07/120444.htm
在Ubuntu Trusty 14.04 (LTS) (64-bit)安裝Docker http://www.linuxidc.com/Linux/2014-10/108184.htm
在 Ubuntu 15.04 上如何安裝Docker及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm
Ubuntu 16.04上Docker使用手記 http://www.linuxidc.com/Linux/2016-12/138490.htm
相關文章