兩種方式創建你自己的 Docker 基本映像

jopen 9年前發布 | 10K 次閱讀 Docker

歡迎大家,今天我們學習一下 docker 基本映像以及如何構建我們自己的 docker 基本映像。Docker 是一個開源項目,提供了一個可以打包、裝載和運行任何應用的輕量級容器的開放平臺。它沒有語言支持、框架和打包系統的限制,從小型的家用電腦到高端服務器,在何時何地都可以運行。這使它們可以不依賴于特定軟件棧和供應商,像一塊塊積木一樣部署和擴展網絡應用、數據庫和后端服務。

Docker 映像是不可更改的只讀層。Docker 使用 Union File System 在只讀文件系統上增加可讀寫的文件系統,但所有更改都發生在最頂層的可寫層,而其下的只讀映像上的原始文件仍然不會改變。由于映像不會改變,也就沒有狀態。基本映像是沒有父類的那些映像。Docker 基本映像主要的好處是它允許我們有一個獨立運行的 Linux 操作系統。

兩種方式創建你自己的 Docker 基本映像

下面是我們如何可以創建自定義的基本映像的方式。

1. 使用 Tar 創建 Docker 基本映像

我們可以使用 tar 構建我們自己的基本映像,我們從一個運行中的 Linux 發行版開始,將其打包為基本映像。這過程可能會有些不同,它取決于我們打算構建的發行版。在 Debian 發行版中,已經預帶了 debootstrap。在開始下面的步驟之前,我們需要安裝 debootstrap。debootstrap 用來獲取構建基本系統需要的包。這里,我們構建基于 Ubuntu 14.04 "Trusty" 的映像。要完成這些,我們需要在終端或者 shell 中運行以下命令。

$ sudo debootstrap trusty trusty > /dev/null
$ sudo tar -C trusty -c . | sudo docker import - trusty

兩種方式創建你自己的 Docker 基本映像

上面的命令為當前文件夾創建了一個 tar 文件并輸出到標準輸出中,"docker import - trusty" 通過管道從標準輸入中獲取這個 tar 文件并根據它創建一個名為 trusty 的基本映像。然后,如下所示,我們將運行映像內部的一條測試命令。

$  docker run trusty cat /etc/lsb-release

Docker GitHub Repo 中有一些允許我們快速構建基本映像的事例腳本.

2. 使用Scratch構建基本映像

在 Docker registry 中,有一個被稱為 Scratch 的使用空 tar 文件構建的特殊庫:

$ tar cv --files-from /dev/null | docker import - scratch

兩種方式創建你自己的 Docker 基本映像

我們可以使用這個映像構建新的小容器:

FROM scratch
ADD script.sh /usr/local/bin/run.sh
CMD ["/usr/local/bin/run.sh"]

上面的 Dockerfile 文件來自一個很小的映像。這里,它首先從一個完全空的文件系統開始,然后它復制新建的 /usr/local/bin/run.sh 為 script.sh ,然后運行腳本 /usr/local/bin/run.sh。

結尾

這這個教程中,我們學習了如何構建一個開箱即用的自定義 Docker 基本映像。構建一個 docker 基本映像是一個很簡單的任務,因為這里有很多已經可用的包和腳本。如果我們想要在里面安裝想要的東西,構建 docker 基本映像非常有用。如果有任何疑問,建議或者反饋,請在下面的評論框中寫下來。非常感謝!享受吧 :-)


via: http://linoxide.com/linux-how-to/2-ways-create-docker-base-image/

作者:Arun Pyasi 譯者:ictlyh 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!