2020年7月27日 星期一

【工業物聯網應用 - 應用服務器的漫談】Docker 映像檔 - 以 Ubuntu OS 為例(一)


講解過 Docker 安裝在各作業系統上的方法後,接下來換了解一下 Docker 最基本的操作,這是是使用 Docker 一定要會的基本指令。

Docker 基本 CMD

從上圖得以了解,映像檔是 Docker 的三大組件之一。

Docker 在執行容器前需要本地端存在對應的映像檔,如果映像檔不存在本地端,Docker 會從映像檔倉庫下載(預設是 Docker Hub 公共註冊伺服器中的倉庫)。

以下使用 Ubuntu OS 為例。

一、取得映像檔
首先開啟 terminal,進行映像檔的搜尋(注意:預設是 Docker Hub 公共註冊伺服器中的倉庫)

Bash
# 語法
docker search [OPTIONS] TERM

# OPTIONS 說明:
--automated :只列出 automated build 類型的映像檔;
--no-trunc : 顯示完整的映像檔描述;
-s :列出收藏數不小於指定值的映像檔。


# 實例:從 Docker Hub 查找所有映像檔,名稱包含 ubuntu,並且收藏數大於 10 的映像檔
$ docker search -s 10 ubuntu

二、下載映像檔

可以使用 docker pull 命令,從倉庫取得所需要的映像檔案。 

Bash
docker pull ubuntu

        下載過程中,會出書取得映像檔的每一層信息,該命令實際上相當於

Bash
docker pull registry.hub.docker.com/ubuntu:latest

命令,即從註冊服務器 registry.hub.docker.com 中的 ubuntu 倉庫來下載標記為 latest 的映像檔。

三、顯示本機已有的映像檔

Bash
docker images
REPOSITORY       TAG             IMAGE ID            CREATED              VIRTUAL SIZE
ubuntu           12.04           74fe38d11401        4 weeks ago          209.6 MB
ubuntu           precise         74fe38d11401        4 weeks ago          209.6 MB
ubuntu           14.04           99ec81b80c55        4 weeks ago          266 MB
ubuntu           latest          99ec81b80c55        4 weeks ago          266 MB
ubuntu           trusty          99ec81b80c55        4 weeks ago          266 MB
...
在列出訊息中,可以看到幾段文字訊息
    • 來自於哪個倉庫,比如 ubuntu
    • 映像檔的標記,比如 14.04
    • 它的 ID 號(唯一)
    • 建立時間
    • 映像檔大小

其中映像檔的 ID 唯一標識了映像檔,注意到 ubuntu:14.04 和 ubuntu:trusty 具有相同的映像檔 ID,說明它們實際上是同一映像檔。

TAG 用來標記來自同一個倉庫的不同映像檔。例如 ubuntu 倉庫中有多個映像檔,通過 TAG 來區分發行版本,例如 10.04、12.04、12.10、13.04、14.04 等。

例如下面的命令指定使用映像檔 ubuntu:14.04 來啟動一個容器。 

Bash
docker run -t -i ubuntu:14.04 /bin/bash

        如果沒有指定 TAG,預設使用 latest。

四、移除本地端映像檔

如果要移除本地端的映像檔,可以使用 docker rmi 命令。(注意 docker rm 命令式移除容器。 )

在此要注意的是,刪除映像檔之前要先刪除依賴於這個映像檔的所有容器。 

Bash
docker rmi training/sinatra

Untagged: training/sinatra:latest
Deleted: 5bc342fa0b91cabf65246837015197eecfa24b2213ed6a51a8974ae250fedd8d
Deleted: ed0fffdcdae5eb2c3a55549857a8be7fc8bc4241fb19ad714364cbfd7a56b22f
Deleted: 5c58979d73ae448df5af1d8142436d81116187a7633082650549c52c3a2418f0

     

文獻參考

網站資源
[1] Docker - 維基百科 - 自由的百科全書
https://zh.wikipedia.org/wiki/Docker


沒有留言:

張貼留言