Ubuntu Docker 源码编译(1.9.1 )详解

Ubuntu Docker 源码编译:

网上对Ubuntu Docker 源码编译的资料有很多,但是对于具体如何操作,和命令的实现不是多细致,经过我一番折腾,终于把源码编译搞定,这里记录下,以便以后使用参考,

一、系统环境

Ubuntu14.04 desktop 64位

二、安装Docker(Docker内编译Docker)

$ sudo apt-get update

$ sudo apt-get install wget

$ wget -qO- https://get.docker.com/ | sh

三、拉取Docker开发环境容器

# docker pull docker-dev:1.9.1

四、下载Docker源码到本地机器

# apt-get install git 

# mkdir -p /home/docker/src 

# cd /home/docker/src 

# git clone https://github.com/docker/docker.git 

# cd docker 

# git checkout v1.9.1

五、编译

其实Docker编译容器内自带了源码,这里第四步将源码下载到本地机器,主要是为了二次开发方便。

可以将开发好的新代码替换容器内原有的代码,进行定制开发。

1. 创建本地编译结果保存目录

# mkdir -p /home/docker/bundles

2. 启动容器,并映射本地代码到容器:

# 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/docker/bundles:/go/src/github.com/docker/docker/bundles \
  -v /home/docker/src:/tmp \
  docker-dev:1.9.1 \
  bash

3. 在容器中编译(此命令在容器中执行):

# cp -a /tmp/docker/* /go/src/github.com/docker/docker/

# hack/make.sh binary

4. 编译完成后,退出容器,检查本地结果路径,已经生成了编译好的Docker可执行文件:

# ls -l /home/docker/bundles

六、验证

# cd /home/docker/bundles/1.9.1/binary

# ./docker version

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2016-11-05

详解使用Docker容器来源码编译etcd

背景 etcd是CoreOS公司开发的分布式键值对存储库.在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储. 不幸的是,在github的release中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢.因此,我们只能通过源码编译etcd. 过程 1. 下载etcd源码. $ git clone https://github.com/coreos/etcd.git $ cd etcd 2. 根据实际情况,选择合适的版本.

详解Docker源码编译安装

最近在尝试阅读Docker源码,一直想弄明白docker关于namespace等的代码的在哪,以及怎么触发.然而在阅读时发现根本找不到代码...想着还是先源码安装下docker,然后边运行边打印些调试信息看看再说 安装之前 Docker源码需在docker容器编译环境中编译,所以先安装docker,安装环境依旧是ubuntu14.04 echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee

详解Centos7源码编译安装 php7.2之生产篇

介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是否存在兼容性,如果程序是基于php5开发的,那么就需要考虑php7是否适合你当前的生产环境,今天我就实操并安装用于生产中. 先安装php依赖包,否则在编译安装php7的过程当中会出现各种报错,安装完成后即可进入下一个环节. 安装扩展包并更新系统内核: $ yum install epel-release -y $ yum updat

详解Centos7 源码编译安装 Nginx1.13

关于nginx的相关介绍我就不说了,既然你选择nginx作为你的web服务器,想必你多少也对nginx server有不同认知和理解,接下来我就直接安装. 1.先决条件: 我使用的是centos7.3 64位核心版系统,安装配置nginx前必须安装nginx依赖包,请查看:Centos 7编译安装php7.1之生产篇,并安装前文开头所提供的依赖包.此依赖组件包适用于Nginx任意版本. 新建web用户和组 $ /usr/sbin/groupadd www $ /usr/sbin/useradd

CentOS 6.6 源码编译安装MySQL 5.7.18教程详解

一.添加用户和组 1.添加mysql用户组 # groupadd mysql 2.添加mysql用户 # useradd -g mysql -s /bin/nologin mysql -M 二.查看系统中是否安装mysql,如果安装需要卸载 # rpm -qa | grep mysql mysql-libs-5.1.73-3.el6_5.x86_64 # rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps 三.安装所需依赖包 # yum -y ins

Ubuntu 17.04系统下源码编译安装opencv的步骤详解

前言 本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装.开发环境主要针对python 对 openCV库的调用.下面话不多说了,来一起看看详细的介绍: 一.安装 gcc cmake 编译环境 sudo apt-get install build-essential pkg-config cmake cmake-gui 本文提供两种源码编译方式,一种是cmake命令,另一种是通过图形界面的cmake-gui进行编译 该版本系统ubuntu已经自带python 2.7 和 p

源码编译安装MySQL8.0.20的详细教程

在上篇文章给大家介绍了: MySQL8.0.20安装教程及其安装问题详细教程  https://www.jb51.net/article/186202.htm mysql8.0.20下载安装及遇到的问题(图文详解)  https://www.jb51.net/article/186208.htm CentOS7安装Mysql8.0.20步骤: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html 1 概述 本文章主要讲述

Linux CentOS 7源码编译安装PostgreSQL9.5

之前的博客记录了通过rpm包的形式安装PostgreSQL 9.3(Linux CentOS 7 安装PostgreSQL 9.3(发行版本) ),本篇blog将记录一下通过源码编译的形式安装PostgreSQL 9.5. 下载 在postgresql的官方即可找到源码文件目录,地址如下:https://www.postgresql.org/ftp/source/,在下载列表中根据需求选择版本,如下图: 进入子目录后,可以看到文件列表: 如上图,可以看到提供了两种压缩格式,此处我们选择postg

CentOS 6.3 安装配置Apache2.2.6的方法(源码编译安装)

安装说明 安装环境:CentOS-6.3 安装方式:源码编译安装 软件:httpd-2.2.6.tar.gz | pcre-8.32.tar.gz | apr-1.4.6.tar.gz | apr-util-1.5.1.tar.gz 下载地址:http://mirror.bjtu.edu.cn/apache/httpd/ http://apr.apache.org/download.cgi http://jaist.dl.sourceforge.net/project/pcre/pcre 安装位

Ubuntu 16.04源码编译安装PHP 5.6.29的教程

1. 下载地址:http://www.php.net/downloads.php 2.解压 tar -zxvf PHP-5.6.29.tar.gz 3.配置 ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs 注意:这里的-with-apxs2=/usr/local/apache/bin/apxs选项,其中apxs是在安装Apache时产生的,路径根据实际情况设置.apxs是一个为Apache HTT