docker源码编译打包指南(docker-ce)
2020/5/3 17:25:22
本文主要是介绍docker源码编译打包指南(docker-ce),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 前提条件:已安装docker.
docker以每月发布一个版本的节奏进行开发。命名规则为:年份-月份-ce,其中ce表示社区版本。
本文用的是Docker version 18.06.3-ce。
Docker CE包含了docker引擎,docker命令行以及打包工具。网上也有其他以moby或单独docker引擎打包的经验,比较之下还是docker ce编译打包最为全面和妥当,这样打包出来已经是rpm包可以直接安装,而不是需要手动替换docker的二进制包!
-
下载源码
git clone https://github.com/docker/docker-ce
- 网速感人! 走快车道: gitee.com/mumu7/docke…
- 163MiB大小的源码,下载完毕!
cd docker-ce 复制代码
- 切换分支
git checkout -b v18.06.3-ce 复制代码3. 进入打包目录
cd ./components/packaging/rpm/
这样随后得到的是rpm包,也有另外目录可以打deb包,自取。
- 编译打包命令:
make VERSION=18.06.3-ce ENGINE_DIR=/path-to-docker/docker-ce/components/engine CLI_DIR=/path-to-docker/docker-ce/components/cli centos-7 复制代码
- 果然,不会那么顺利,立即编译失败:
buildkit not supported by daemon
!
docker run --rm -v /root/qzy/docker-src/docker-ce/components/packaging/rpm:/v -w /v alpine chown -R root:root rpmbuild DOCKER_BUILDKIT=1 docker build --build-arg GO_IMAGE=golang:1.13.10-buster -t rpmbuild-centos-7/x86_64 -f centos-7/Dockerfile . 复制代码
其中有DOCKER_BUILDKIT=1
,那么改DOCKER_BUILDKIT=0
尝试。
这个设置在rpm目录下的Makefile
约16行处!保存后可以继续编译了。
原因是下载的docker不支持buildkit,所以需要关闭DOCKER_BUILDKIT.不纠结!
- 安装或更新了很多(系统上的)依赖包,从github自行下载了很多代码块,进行了10分钟,报错:
fatal: unable to access 'https://github.com/krallin/tini.git/': Failed connect to github.com:443; Connection timed out
似乎是网络问题,重试!
-
确实是网络问题,重试两次下载tini完成,继续下载依赖。 后续又因网络问题重试了几次,编译完成:
exit 0
标示正常退出了。 -
进入
docker-ce/components/packaging/rpm/rpmbuild/RPMS/x86_64
查看: -
拷贝到其他机器rpm安装。先安装
docker-ce-cli
后安装docker-ce
,安装完成后使用docker version
查看版本!如遇到问题请回复交流!
这篇关于docker源码编译打包指南(docker-ce)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19Docker-Compose容器集群化项目实战:新手入门指南
- 2024-11-19Docker镜像仓库项目实战:新手入门教程
- 2024-11-19Docker容器化部署项目实战:新手入门教程
- 2024-11-19Docker-Compose容器集群化资料入门教程
- 2024-11-19Docker镜像仓库资料详解:新手入门教程
- 2024-11-19Docker容器化部署资料:新手入门指南
- 2024-11-19Docker-Compose容器集群化教程:从入门到实践
- 2024-11-19Docker镜像仓库教程:新手入门指南
- 2024-11-19Docker容器化部署教程:初学者指南
- 2024-11-18Docker-Compose容器集群化入门教程