4. docker鏡像的概念、管理(查看、下載、刪除)


鏡像的概念

鏡像是一個包含程序運行必要依賴環境和代碼的只讀文件,它采用分層的文件系統,將每一次改變以讀寫層的形式增加到原來的只讀文件上。鏡像是容器運行的基石。

  • 下圖展示的是Docker鏡像的系統結構。其中,鏡像的最底層必須是一個稱為啟動文件系統(bootfs)的鏡像,用戶不會與這一層直接打交道。bootfs的上層鏡像就是我們熟知的根鏡像。

這里寫圖片描述

  • 鏡像的本質是磁盤上一系列文件的集合。

這里寫圖片描述

查看

docker images:可以列出本機上的所有鏡像:

這里寫圖片描述

  • REPOSITORY:倉庫名稱。
    • [namespace/centos]:由命名空間和實際的倉庫名稱組成。當你再Docker Hub上注冊一個賬戶時,賬戶名自動成為你的命名空間,該命名空間是用來區分Docke Hub上注冊的不同用戶或者組織的。
    • [centos]:只有倉庫名。屬於頂級命名空間,只用於官方鏡像。
    • [dl.dockerpool.com:5000\centos:7]:指定URL路徑的方式。適用於自己搭建的Hub或者第三方Hub上獲取鏡像。
  • TAG:用於區分同一個倉庫中的不同鏡像。
  • IMAGE ID:鏡像的唯一標識:64位HashID。
  • CREATED:鏡像 的創建時間。
  • SIZE:鏡像所占用的虛擬大小,該大小包含了所有共享文件的大小。
docker images ce*:通配符,找到符合條件的一系列鏡像。

這里寫圖片描述

docker inspect [NAME]/[CONTAINER ID]:images只會列出鏡像的基本信息,詳細信息可以通過inspect命令查看:

這里寫圖片描述

下載

下載之前推薦使用加速器

阿里雲的鏡像加速大家參考阿里給的方案https://dev.aliyun.com/search.html,不過我試了幾次發現貌似阿里給的方案有點問題(我只試了centos7),所以阿里的方案大家自定參考,我就不說了, 我說下我配置阿里雲鏡像成功的方法。

  • 首先要在上面的連接中注冊阿里雲開發者平台賬號,我們在加速器選項中得到一個各自專屬的加速器地址。

這里寫圖片描述

配置阿里雲的docker鏡像庫:在阿里雲開通容器鏡像服務拿到加速地址在執行以下命令:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://{自已的編碼}.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

 

docker run:命令運行時會在本地尋找鏡像,找不到的時候就會去Docker Hub上面搜索並下載后運行。

docker search [NAME]:下載之前可以通過search命令查找搜索符合的鏡像:

這里寫圖片描述

  • NAME:鏡像名稱。
  • DESCRIPTION:鏡像的簡要描述。
  • STARS:用戶對鏡像的評分。
  • OFFICIAL:是否為官方鏡像。
  • AUTOMATED:是否使用了自動構建。
docker pull [NAME]:可以預先將鏡像拉到本地。鏡像名必須完整地包含命名空間和倉庫名。如果一個倉庫中存在多個鏡像,還必須制定TAG,否則使用默認TAG:latest。

這里寫圖片描述

刪除

docker rmi [NAME]/[CONTAINER ID]對於不需要的鏡像,可以使用rmi命令刪除。與移除容器的命令rm相比,刪除鏡像的命令多了一個i,i即image的意思。
  • 刪除多個:多個鏡像之間使用空格隔開。
  • -f:強制刪除,大部分刪不掉的情況可能是因為這個鏡像被容器依賴了,可以選擇先移除容器。
docker rm $(docker ps -a -q):如果本地有很多已經停止運行的容器,一個個刪除很麻煩,可以使用下面的命令將這些容器一次性刪除,這樣就能減少無用容器對鏡像的依賴。 docker ps -a -q:用來列出所有容器的ID

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM