docker以每个月发布一个版本的节奏进行开发。命名规则为:年份-月份-ce,其中ce表示社区版本。html
本文用的是Docker version 18.06.3-ce。git
Docker CE包含了docker引擎,docker命令行以及打包工具。网上也有其余以moby或单独docker引擎打包的经验,比较之下仍是docker ce编译打包最为全面和稳当,这样打包出来已是rpm包能够直接安装,而不是须要手动替换docker的二进制包!github
下载源码golang
git clone https://github.com/docker/docker-ce
docker
cd docker-ce
复制代码
git checkout -b v18.06.3-ce
复制代码
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行处!保存后能够继续编译了。centos
缘由是下载的docker不支持buildkit,因此须要关闭DOCKER_BUILDKIT.不纠结!bash
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
查看版本!如遇到问题请回复交流!ui