2017-05-12 33 views
1

我想讓Docker 1.13.1在ARMv8上使用,並且在Docker(組織)尚未提供AArch64構建的情況下,我決定自己構建它。從源代碼構建Docker - 如何運行?

我跟着一個很好的教程:http://oyvindsk.com/writing/docker-build-from-source

的結果是,我把從GitHub的源代碼:

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

我切換到回購和從v1.13.1創建一個新的分支標籤

cd docker 
git checkout -b gta1.13.1 v1.13.1 

我執行兩個撥打電話:

make build 
make binary 

,保全你一些細節,推動所產生的二進制我自己的GitHub庫:https://github.com/scyentyfyc/docker

我再扳指回購到不尚未安裝搬運工一個ARMv8服務器,我每次複製這並不在.md5結束或.sha256過到/ usr/bin中,造成這一切在我的/ usr/bin文件

/usr/bin/docker 
/usr/bin/docker-1.13.1 
/usr/bin/docker-containerd 
/usr/bin/docker-containerd-ctr 
/usr/bin/docker-containerd-shim 
/usr/bin/dockerd 
/usr/bin/dockerd-1.13.1 
/usr/bin/docker-init 
/usr/bin/docker-proxy 
/usr/bin/docker-runc 

如果我手動運行dockerd,它似乎運行正常,但我不能使用我在其他地方看到的東西,比如

service docker start 

當我收到消息「無法啓動docker.service:未找到單元docker.service」。當我試圖使用systemd

systemctl enable docker 

我得到的消息,「無法執行操作:沒有這樣的文件或目錄」。

所以,我只是想知道我錯過了什麼。我不想手動運行docker守護進程,我希望它設置爲在系統啓動時自動運行,但在經過大量漫遊之後,我已經空手交出了

+0

這應該有助於:手動創建systemd單元文件部分https://docs.docker.com/ engine/admin/systemd/ –

回答

1

Mark是對的。您將需要創建服務文件,以便systemd知道如何與Docker服務交互。您需要將this github repo中的.service和.socket文件複製到/ etc/systemd/system

+0

非常感謝。這讓我有90%的途徑。直到我運行「groupadd docker」時,我仍然遇到了錯誤(我是linux的新手,如果這已經不是明亮而清晰的照片了,我不知道groupadd docker實際上做了什麼)。 github上的這個問題報告就是我發現這個消息的地方。 https://github.com/moby/moby/issues/29179。在你們兩個之間,我是金! –

+0

groupadd docker使您的用戶成爲Docker組的一部分,它影響您有權訪問的文件。查看https://www.linux.com/learn/understanding-linux-file-permissions瞭解更多信息。 – funkymonkeymonk