官方建议docker源码编译在docker容器内进行,因为官方提供的容器内已经继承了编译需要的环境,如果非要自己搭建编译环境也不是不可用,就是稍微有些繁琐。以1.8.2版本为例。
源码地址如下:https://github.com/docker/docker-ce.git
一、下载编译镜像
[root@localhost ~]# docker pull docker-dev:1.8.2
具体版本可以查看官网。
二、创建目录存放docker编译后生成的文件夹
[root@localhost home]# mkdir -p /home/dockerbuild/bundles
[root@localhost home]# cd /home/dockerbuild/
三、运行pull得到的docker-dev镜像,然后在容器里进行docker的编译工作
[root@localhost dockerbuild]# 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@bee5bb855839:/go/src/github.com/docker/docker# hack/make.sh binary
四、查看编译输出并验证结果
root@bee5bb855839:/go/src/github.com/docker/docker# ls -l bundles/1.8.2/binary/
上述可以看到容器内,bundles目录已经有了编译好的docker程序文件了。退出容器后,在本机 /home/dockerbuild/bundles/1.8.2/binary目录下会得到一个编译完毕的docker。
