• 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)
    
  • 相关阅读:
    2019CSP-S总结(复赛)
    2019.11.10【NOIP提高组】模拟 A 组 总结
    2019.11.09【NOIP提高组】模拟 A 组 总结
    2019.11.08晚【NOIP提高组】模拟 A 组 总结
    2019.11.02【NOIP提高组】模拟 A 组 总结
    2019.10.25【NOIP提高组】模拟 A 组 总结
    2019.10.26【NOIP提高组】模拟 A 组 总结
    C++学习之模板特例化
    C++学习之可变参数的函数与模板
    C++学习之函数模板与类模板
  • 原文地址:https://www.cnblogs.com/styshoo/p/5824895.html
Copyright © 2020-2023  润新知