前幾天已經認識 Image 與 Container,也實際使用 hello-world 建立了第一個 Container。
今天把重點放在 Image(映像檔) 本身,看看 Image 要從哪裡取得,以及如何查看與管理。
Docker 建立 Container 前,需要先有對應的 Image。如果電腦中沒有需要的 Image,就可以從 Docker Hub 下載。
想知道電腦裡有哪些 Image,可以輸入:
docker images
執行後會看到類似:
REPOSITORY TAG IMAGE ID SIZE
hello-world latest xxxxxxxxxxxx xxkB
其中:
Docker Hub 可以想成存放 Docker Image 的平台,許多常見軟體都有官方提供的 Image。
下載 Image 可以使用:
docker pull <Image名稱>
例如:
docker pull postgres
Docker 就會下載 PostgreSQL Image。
下載完成後,再輸入:
docker images
就可以看到剛剛下載的 postgres。
下載 Image 時常常會看到 latest:
postgres:latest
冒號後面的內容就是 Tag,通常用來區分不同版本。
例如:
docker pull postgres:17
代表下載 Tag 為 17 的 PostgreSQL Image。
如果沒有指定 Tag:
docker pull postgres
Docker 預設會使用 latest Tag。
因此在實際開發中,可以依照專案需求指定需要的版本。
如果某個 Image 已經不需要,可以使用:
docker rmi <Image名稱>
例如:
docker rmi hello-world
也可以透過 Image ID 刪除:
docker rmi <Image ID>
如果 Image 還被 Container 使用,可能會無法直接刪除,需要先處理相關的 Container。
| 指令 | 功能 |
|---|---|
docker images |
查看本機 Image |
docker pull postgres |
下載 PostgreSQL Image |
docker pull postgres:17 |
下載指定 Tag 的 Image |
docker rmi |
刪除 Image |
可以簡單記成:
pull → 下載 Image
images → 查看 Image
rmi → 刪除 Image
docker images 查看latest
docker images 查看目前的 Imagedocker pull postgres 下載 PostgreSQL Image今天把重點從 Container 轉到 Image,實際學習如何查看、下載與刪除 Image。
之前使用 docker run hello-world 時,Docker 就有自動幫忙取得需要的 Image,但今天才真正了解也可以透過 docker pull 自己下載。
另外也認識了 Tag 的用途,可以利用不同的 Tag 區分 Image 的版本。接下來準備使用 PostgreSQL 時,就可以選擇適合的 Image,並利用它建立真正會持續執行的 Container。