映象提供容器執行時所需要的程式,資源、配置檔案等,是乙個特殊的檔案系統。是容器執行的基礎。映象是多層檔案系統組成的,是乙個分層儲存的架構,在映象的構建中,會一層層的構建,每一層構建完成就不會發生改變,後一層的改變只會在自己這一層發生改變。刪除前一層的檔案操作,實際上不會刪除前一層的檔案,而是僅僅在該層將檔案標記為刪除,實際上還儲存在前一層。因此在映象的構建過程中,只盡量的新增該層需要的檔案,任何和該層無關的檔案要清理。
映象使用命令:
(1)映象拉取
docker pull [選項] [docker registry 位址[:埠號]/]倉庫名[:標籤]
倉庫名稱:《使用者名稱》/《軟體名》 ,對於docker hub,沒給出使用者名稱。預設是library,即官方映象
docker pull ubuntu:16.04(2)執行映象
執行映象,是以乙個映象為基礎啟動乙個容器。
docker run
[選項] [docker registry 位址[:埠號]/]倉庫名[:標籤]
docker run -it --rm ubuntu:16.04-i 互動式操作
-t 偽終端
(3)列出映象
虛懸映象:是一種特殊的映象,沒有倉庫名,沒有標籤,均為,這種映象是因為映象維護,新舊映象同名的話,舊映象名會被取消,這類無標籤的映象就是虛懸映象(dangling image)。
列出虛懸映象命令:docker image ls -f dangling=true
這種映象是沒有意義的,可以隨意刪除。刪除命令:docker image prune
中間層映象:為了加速映象構建、 重複利用資源, docker 會利用 中間層映象。 所以在使用一段時間後,可能會看到一些依賴的中間層映象。預設docker image ls 列表中只會顯示頂層映象, 如果希望顯示包括中間層映象在內的所有映象的話, 需要加 -a 引數。
命令 : docker image ls -a
(4)刪除本地映象
docker image rm [選項] [映象id/映象名稱/映象摘要]
docker 映象的刪除有 untagged 和 delete 行為
首先是會按照要求取消映象的tag,但是如果乙個映象有多個標籤tag,如果只是刪除了指定的標籤,映象還有其他標籤,那麼不會發生刪除delete行為,只是取消了標籤。當映象所有的標籤都取消了,才會觸發刪除行為。因為映象是多層儲存結構,再刪除的時候,會從最上層向底層依次進行判斷刪除,當其他映象依賴於該映象的某一層,依舊不會觸發刪除行為。所以可能會看到刪除的層數和docker pull時的層數不一樣。
容器的執行時建立在映象基礎之上的,如果某個映象的容器還存在,即使沒有執行,該映象也不能刪除。
刪除乙個還有容器的映象會報類似這樣的錯:error response from daemon: conflict: unable to remove repository reference "nginx:v2" (must force) - container aa59eab5cc29 is using its referenced image 97d1bffd8e7f
Docker筆記 3 Docker引擎
來自 nigel poulton的深入淺出docker docker引擎由如下的元件構成 docker客戶端 docker client docker守護程序 docker deamon containerd runc 總體邏輯如圖 docker首次發布時,docker引擎由兩個核心元件構成lxc和...
部署(3) docker高階
1,網路模式說明 特點 和宿主機的網絡卡一樣,方便進行部署使用 2,橋接模式,bridge模式 特點 只有兩個網絡卡,並且多個橋接模式的容器,在乙個網段,方便搭建集群 3,空模式,none模式 特點 之後回環位址,不能聯網,在需要絕對安全情況下使用 4,container模式 特點 複製其他容器的網...
3 docker製作映象
映象具有 重複性 和 不可變性 docker run it golang 1.17新建 dockerfile 配置檔案 啟動編譯環境 from golang 1.17 配置編譯環境 拷貝源 到映象中 copy gateway go src 編譯 workdir go src gateway run ...