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
複製代碼
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行處!保存後能夠繼續編譯了。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