相較於虛擬機(Virtual Machine),映像檔在容器技術中可以看成是一個要建立執行環境的一個模版,它用來指示Docker系統要準備好什麼樣的環境。為了讓可共用的部份最大化,以減少每個映像檔需要佔用的空間或是需要下載處理的記憶體,每一個映像檔都是以會參考及共用別的映像檔,一層一層添加上去,因此,當你需要某一個映像檔,把它從網路上下載到本地端時,會看到許多分開的步驟。
通常,當我們需要使用一個容器環境時,首先會去搜尋網路上有沒有哪一個可用的版本。以ubuntu為例,假設我們在Windows的環境之下想要建立一個Ubutnu的作業環境,可以利用以下的指令進行搜尋:
docker search ubuntu
然後就會出現如下所示的畫面(僅顯示部份):
Docker會到Docker的官方Hub上尋找並列出一些公開可用的image,有些是官方的,有些則是一些使用者自己依照需求打造而公開的,其中STARS欄位所呈現的數字表示這個映像檔受歡迎的程式。如果想要使用其中一個images,只要使用docker pull <image name>進行提取就可以了。通常在名稱上可以看到該映像檔的特性,例如除了ubuntu作業系統之外,它還加上了什麼預載的功能,當然,預載的功能愈多,該映像檔的大小也愈大。以ubuntu/apache2為例,我們可以透過以下的指令進行提取,也就是把該映像檔下載到我們自己的電腦中:
docker pull ubuntu/apache2
或
docker image pull ubuntu/apache2
以下是上述指令執行後的樣子:
在提取完畢之後,可以利用以下的指令檢視目前本地端主機中的所有映像檔:
docker images
以下是docker images指令的可能執行結果(在提取了多個映像檔之後):
要特別留意的是,每一個本地端的映像檔都會佔用許多的空間,這些空間都會消耗掉你的電腦的硬碟空間,所以如果不需要使用的話,建議最好把它們移除,移除的指令如下:
docker image rm <respository or image id>
如果該映像檔被某一個容器所使用的話,則該映像檔並無法被移除,此時請將該container停止再來移除,或是使用以下的指令停止所有的容器:
docker container prune
或是利用以下的指令強制移除你想要移除的映像檔:
docker image rm <respository or image id> --force