如何编译docker 1.2.0版本的源码

来源:互联网 发布:适用于mac的浏览器 编辑:程序博客网 时间:2024/05/16 13:48

  看孙宏亮<<docker源码分析>>时,看再多自己不动手改改写写,不编译下始终觉得是纸上谈兵。<<docker源码分析>>并没有给出怎么编译docker,其实编译docker那是相当简单,只要执行make build创建编译环境,然后再make binary就编译完成。让人吐血的是make build过程是构建一个docker镜像,需要下载各种工具或代码,其中不乏是国内压根没法下载的的(至于原因你懂的). 幸好有提供已经准备好的编译环境docker镜像,只需要进到docker镜像里执行hack/make.sh binary就行了。

  当然执行这些之前要了解下Makefile, make.sh这些是怎么回事,可以看我上一遍文章<如何编译Docker源码>。

  现在可以利用别人已经搞好的镜像来编译docker源码.

  1.  docker pull docker-dev:v1.2.0,其他版本就到docker hub上查dockercore/docker或docker-dev

        2. 创建一个目前用来存放编译好的docker二进制文件

            mkdir -p /home/dockerbuild/bundles

           cd /home/dockerbuild/

       3.运行刚刚下载的的docker-dev:v1.2.0镜像,镜像里已经有1.2.0版本的源代码了,所以接着在docker容器里直接编译就行了。

   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:v1.2.0 bash    
        4. 在此目录下/go/src/github.com/docker/docker,执行hack/make.sh binary

        5. 这样在/go/src/github.com/docker/docker/bundles目录下就行有编译好的docker二进制文件了。当然在宿主机里的/home/dockerbuild/bundles目录下也有

原创粉丝点击