根據Docker documentation,要構建自己的圖像,必須始終使用FROM
指令指定基本圖像。如何爲Docker製作我自己的基礎映像?
顯然,在the Docker index中有很多圖像可供選擇,但如果我想構建自己的圖像呢?那可能嗎?
如果我理解正確,圖像base
是由Ubuntu構建的,我想用Debian圖像進行試驗。另外,我想真正瞭解Docker的工作方式,而base
圖像對我來說仍然是一個黑盒子。
根據Docker documentation,要構建自己的圖像,必須始終使用FROM
指令指定基本圖像。如何爲Docker製作我自己的基礎映像?
顯然,在the Docker index中有很多圖像可供選擇,但如果我想構建自己的圖像呢?那可能嗎?
如果我理解正確,圖像base
是由Ubuntu構建的,我想用Debian圖像進行試驗。另外,我想真正瞭解Docker的工作方式,而base
圖像對我來說仍然是一個黑盒子。
你可以看看如何創建基本圖像並從那裏開始。
你可以在這裏找到它們:https://github.com/dotcloud/docker/tree/master/contrib。 有mkimage-busybox.sh,mkimage-unittest.sh,mkimage-debian.sh
mkimage- *腳本已被移動並重命名(正如官方的repo)到[這裏](https://github.com/docker/docker/tree/master/contrib/mkimage) – tsalaroth
您可以輕鬆地從 「泊塢窗進口」 的任何tar文件創建一個新的容器。例如:
debootstrap raring ./rootfs tar -C ./rootfs -c . | docker import - flimm/mybase
也許在評論中發佈編輯/更新,所以其他人可以看到它,也許有人可以重新提交編輯。 – Bdoserror
@Flimm爲什麼我需要在這種情況下使用sudo?在你的用戶目錄中運行這些命令,你應該沒有理由提升權限。您正在創建一個圖像,而不是安裝它。 – rancidfishbreath
你甚至不需要root用於正常的Docker使用;只需將自己添加到「docker」組。 – tekknolagi
(信貸fatherlinux)從http://developerblog.redhat.com/2014/05/15/practical-introduction-to-docker-containers/,這也解釋了更好
創建tar文件的文件系統獲取的信息,簡直是
tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos6-base.tar/
將tar文件轉移到其他碼頭系統(如果未在本地安裝),並且import
它
cat centos6-base.tar | docker import - centos6-base
現在您可以通過運行它進行驗證。
docker run -i -t centos6-base cat /etc/redhat-release
的scripts from dotcloud結合前兩個步驟一起這使我困惑,並在一開始看起來比較複雜。
碼頭official guideline使用debootstrap
也試圖使乾淨的文件系統。
你可以自己判斷怎麼做步驟1
如果你想使自己的基地形象還是先看看 Official Images,特別是stackbrew
回購裏面。
否則,對於docker repo本身的最小操作系統映像有一些很好的參考。
要從頭開始構建自己的圖像,可以使用scratch
圖像。
使用臨時「映像」信號構建過程,您希望Dockerfile中的下一個命令成爲映像中的第一個文件系統層。
FROM scratch
ADD hello/
CMD ["/hello"]
http://docs.docker.com/engine/articles/baseimages/#creating-a-simple-base-image-using-scratch
這是從tar文件加上'import',是兩個規範的答案,並且該鏈接是規範化資源。 – clacke
無所謂。 :-)根據網站的指導方針,這裏的問題仍然需要進行專題討論。它們覆蓋在[幫助]和[關於]頁面上。 (這裏的鏈接似乎也適用於Docker容器的開發人員。)如果您詢問自己的容器映像,那麼[在他們的網站上]有一個工具(http://docs.docker.io/en/latest/use/builder /#dockerbuilder_) –
@KenWhite:related meta question:http://meta.stackexchange.com/questions/179249/why-is-this-docker-question-off-topic – Flimm
:-)相關[meta答案](http://meta.stackexchange.com/a/179250/172661)在這個時間點,這是你的答案。 (尤其請參閱我鏈接的答案的第二個評論,關於你問題的要求的清晰度。) –