网上对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源码到本地机器
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 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. 启动容器,并映射本地代码到容器:
1
|
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!