docker 1.8.2 源代码编译
生活随笔
收集整理的這篇文章主要介紹了
docker 1.8.2 源代码编译
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編譯docker的必要條件
這陣子在公司搞docker container這些技術,docker編譯網上查了一下木有靠譜的。只好自己動手豐衣足食了。
聲明:你編譯docker不需要git pull它的源碼,必備條件只有一個,就是你有一臺能pull鏡像的docker主機就行了。
本人環境是VMware下CentOS Linux release 7.1.1503 (Core) [x86_64]
以下為編譯過程的具體記錄
?
1.pull docker-dev:1.8.2的鏡像
[root@myserv docker]# docker pull docker-dev:1.8.2 Pulling repository docker-dev ab03141ac2e9: Pulling dependent layers d3a1f33e8a5a: Download complete c22013c84729: Download complete d74508fb6632: Download complete 91e54dfb1179: Download complete 758970a22420: Download complete 62fd5b9e4d35: Download complete 944fcdea21b1: Download complete ab975b7812f0: Download complete 0f860819eb9c: Download complete adcf22790962: Download complete c79325ee5872: Download complete 115d2806e84a: Download complete 1705282a2f45: Download complete 5d8bf41b5802: Download complete 3388f79cde5c: Download complete 979009c412cd: Download complete 11eaa2b57f9e: Download complete b3ff0a3e16f1: Download complete a7cc3d81aeed: Download complete 94b8248ce242: Download complete 006aa3cb8d92: Download complete 5ce85bb004d1: Download complete 28907ad32b10: Download complete 919096bcd935: Download complete 2a138d63ee40: Download complete 2b2733893e80: Download complete ab03141ac2e9: Download complete 906727032fc8: Download complete c296523a5eea: Download complete f38d4f3bc631: Download complete b5564cf04aab: Download complete cd3a9bdbad49: Download complete a223a267d4b0: Download complete 0912427504fa: Download complete 9d153769f49b: Download complete 4ec1b8c4c270: Download complete 7ca719ee5f14: Download complete 3b994c4a49de: Download complete 062d730e6007: Download complete ac1892714a82: Download complete ac43d240b0a2: Download complete dbab3fbdd774: Download complete 79d657b6d894: Download complete 725fa96f33ab: Download complete ad50f4526814: Download complete ee0aa2630de6: Download complete a9314782dbbf: Download complete 23f7502170cd: Download complete 8bfc29dd7728: Download complete Status: Downloaded newer image for docker-dev:1.8.22.創建一個目錄存放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 bashroot@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.24.查看編譯輸出并驗證編譯結果
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.2API version: 1.20Go version: go1.4.2Git commit: 0a8c2e3Built: Tue Sep 15 10:20:40 UTC 2015OS/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里將依賴一個個裝了。
?
Update 1
容器內的源碼目錄:/go/src/github.com/docker/docker
其對應的GOPATH設置如下:
?
本文到此結束,謝謝。
?
總結
以上是生活随笔為你收集整理的docker 1.8.2 源代码编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则表达式在js和java中的使用
- 下一篇: 使用Goldengate 实现Oracl