Docker筆記一之映象

Hunter發表於2023-04-27
本文首發於微信公眾號:Hunter後端
原文連結:Docker筆記一之映象

從這一篇開始將介紹一些 Docker 的使用筆記,都是自己在使用過程中用到的一些筆記的積累。

首先我們來簡單理解一下 Docker 的作用,我們可以將其理解成一個個的小型的 Linux 系統。

以我們的 Django 系統為例,需要執行 Django、MySQL、Redis、Nginx 等,我們可以把它們都放到各自的 Docker 容器中,然後透過 yaml 檔案分別啟動起來。

這樣操作有一個好處,就是便於移植,也就是說在我的電腦上可以執行的系統,打包好後,放到別人的電腦上,只要也裝有 Docker,也可以同樣的執行,這樣就不用額外的去安裝和配置複雜的依賴關係。

這一篇筆記將介紹 Docker 的映象

以下是本篇筆記目錄:

  1. 映象的拉取
  2. 映象的基本命令

1、映象的拉取

在前面我們介紹了,Docker 是一個小型的 Linux 系統,它包含了一個 Linux 系統執行所需的最基礎的軟體和相關依賴。

而我們的映象從哪裡來呢,從 Docker 倉庫。

拉取命令

我們如何拉取呢,假設我們想要拉取一個 Ubuntu 映象,命令則會是:

docker pull ubuntu

很簡單對不對,然後 Docker 就會將 Docker 倉庫裡最近的一個 Ubuntu 版本拉取到本地。

如果我們想指定版本呢,我們想拉取 Ubuntu 18.04,或者 16.04 怎麼辦,加一個 : 和一個版本號即可:

docker pull ubuntu:18.04

docker pull ubuntu:16.04

如果我們想拉取一個 Python 的映象呢,同樣的操作:

docker pull python:3.6

系統就會拉取一個 Linux 系統,這個系統裡除了最簡約版的 Linux,還會自帶一個 Python 3.6 版本。

對於我們拉取下來的映象如何檢視呢,以下是命令:

docker images

然後就可以看到輸出有五欄資料,REPOSITORY、TAG、IMAGE ID、CREATED、SIZE

  • REPOSITORY 是映象的名稱,比如前面拉取的 ubuntu,python
  • TAG 是映象的標籤,比如沒有指定版本的 latest,或者指定版本的 18.04,3.6
  • IMAGE ID 是每一個映象的唯一 id,在後面使用映象的時候,可以透過 image id 來定位
  • CREATED 表示建立時間
  • SIZE 表示映象大小

對於映象的大小,如果我們刪除了某個映象,會發現系統並沒有減少這麼多的儲存空間,這是因為每一個映象都是由很多 構成的,這個層是可以在多個映象之間複用的。

當我們刪除某個映象,僅僅是刪除了該映象沒有被複用的層,被複用的層仍然會存在於系統中被其他映象所使用

2、映象的基本命令

接下來我們介紹一下關於映象的基本命令

拉取指定映象

透過冒號 : 來指定:

docker pull ubuntu:18.04

檢視映象

docker images

docker image ls

上面這兩條命令是一樣的效果

檢視映象相關資訊

docker inspect ubuntu:latest

檢視映象的摘要資訊

docker image ls --digests ubuntu

透過 IMAGE ID 刪除映象

docker rmi ed21b7a8aee9

docker image rm ed21b7a8aee9

其中 ed21b7a8aee9 為指定需要刪除的映象 id

上面兩條命令是一樣的效果

在後面如果多次使用映象,然後系統就會存在映象的名稱和 Tag 都會為 none 的廢棄映象,如果我們想統一刪除這些映象,可以透過如下命令:

docker rmi `docker images -a|grep none | awk '{print $3}'`

在引用符號裡的命令解釋一下

docker images -a 獲取所有映象

grep none 過濾獲取關鍵字有 none 的資料

awk '{print $3}' 獲取輸出的第三列資料,在這裡就是 image 的映象 id

docker rmi 就是刪除映象命令,將後面的操作獲取的映象 ID 刪除

如果想獲取更多後端相關文章,可掃碼關注閱讀:

image.png

相關文章