Docker 查看鏡像信息


文章首發個人網站: https://www.exception.site/docker/docker-look-up-image-info

本文中,我們將需要學習 Docker 如何查看鏡像信息?

一、images 命令列出鏡像

通過使用如下兩個命令,列出本機已有的鏡像:

docker images

或:

docker image ls

如下圖所示:

Docker 查看鏡像信息

對上述紅色標注的字段做一下解釋:

  • REPOSITORY: 來自於哪個倉庫;
  • TAG: 鏡像的標簽信息,比如 5.7、latest 表示不同的版本信息;
  • IMAGE ID: 鏡像的 ID, 如果您看到兩個 ID 完全相同,那么實際上,它們指向的是同一個鏡像,只是標簽名稱不同罷了;
  • CREATED: 鏡像最后的更新時間;
  • SIZE: 鏡像的大小,優秀的鏡像一般體積都比較小,這也是我更傾向於使用輕量級的 alpine 版本的原因;

注意:圖中的鏡像大小信息只是邏輯上的大小信息,因為一個鏡像是由多個鏡像層(layer)組成的,而相同的鏡像層本地只會存儲一份,所以,真實情況下,占用的物理存儲空間大小,可能會小於邏輯大小。

二、使用 tag 命令為鏡像添加標簽

通常情況下,為了方便在后續工作中,快速地找到某個鏡像,我們可以使用 docker tag 命令,為本地鏡像添加一個新的標簽。如下圖所示:

Docker tag 添加標簽

docker.io/mysql 鏡像,添加新的鏡像標簽 allen_mysql:5.7。然后使用 docker images 命令,查看本地鏡像:

Docker tag 添加標簽

可以看到,本地多了一個 allen_mysql:5.7 的鏡像。細心的你一定還會發現,allen_mysql:5.7docker.io/mysql:5.7 的鏡像 ID 是一模一樣的,說明它們是同一個鏡像,只是別名不同而已。

docker tag 命令功能更像是, 為指定鏡像添加快捷方式一樣。

三、使用 inspect 命令查看鏡像詳細信息

通過 docker inspect 命令,我們可以獲取鏡像的詳細信息,其中,包括創建者,各層的數字摘要等。

docker inspect docker.io/mysql:5.7

Docker inspect 查看鏡像詳細信息

docker inspect 返回的是 JSON 格式的信息,如果您想獲取其中指定的一項內容,可以通過 -f 來指定,如獲取鏡像大小:

docker inspect -f {{".Size"}} docker.io/mysql:5.7

Docker inspect 查看鏡像詳細信息

四、使用 history 命令查看鏡像歷史

前面的小節中,我們知道了,一個鏡像是由多個層(layer)組成的,那么,我們要如何知道各個層的具體內容呢?

通過 docker history 命令,可以列出各個層(layer)的創建信息,如我們查看 docker.io/mysql:5.7 的各層信息:

docker history docker.io/mysql:5.7

Docker history 各層信息

可以看到,上面過長的信息,為了方便展示,后面都省略了,如果您想要看具體信息,可以通過添加 --no-trunc 選項,如下面命令:

docker history --no-trunc docker.io/mysql:5.7

五、總結

本文中,我們着重了解了 Docker 中如何查看鏡像信息,以及 tag 命令、inspect 命令、history 命令的作用。祝您學習愉快!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com