摘要:而鏡像名稱是,因此將會獲取官方鏡像倉庫中標簽為的鏡像。如并且下載結束后,給出該鏡像完整的的摘要,以確保下載一致性。這是指用鏡像為基礎來啟動容器。其中倉庫名標簽在之前有提到過。鏡像則是鏡像的唯一標識,一個鏡像可以對應多個標簽。
我們知道Image(鏡像)是Docker的三大組件之一,Docker 運行容器前需要本地存在對應的鏡像,如果本地不存在該鏡像,Docker 會從鏡像倉庫下載該鏡像。接下來先看看,怎樣去獲取鏡像。獲取鏡像
DockerHub 上有大量的高質量的鏡像可以用,這里我們就說一下怎么獲取這些鏡像。
從 Docker 鏡像倉庫獲取鏡像的命令是 docker pull 。其命令格式為:
docker pull [選項] [Docker Registry 地址[:端口號]/]倉庫名[:標簽]
具體的選項可以通過 docker pull --help 命令看到,這里我們說一下鏡像名稱的格式。
Docker 鏡像倉庫地址:地址的格式一般是 <域名/IP>[:端口號] 。默認地址是 Docker Hub。
倉庫名:如之前所說,這里的倉庫名是兩段式名稱,即 <用戶名>/<軟件名> 。對于 Docker Hub,如果不給出用戶名,則默認為 library ,也就是官方鏡像。
先看一個例子,這里拉取ubuntu的一個鏡像:
root@huangche-PC:/# docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu 6abc03819f3e: Pull complete 05731e63f211: Pull complete 0bd67c50d6be: Pull complete Digest: sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000a5 Status: Downloaded newer image for ubuntu:18.04
上面的命令中沒有給出 Docker 鏡像倉庫地址,因此將會從 Docker Hub 獲取鏡像。而鏡像名稱是 ubuntu:18.04 ,因此將會獲取官方鏡像 library/ubuntu倉庫中標簽為 18.04 的鏡像。其中library表示組。
從下載過程中可以看到我們之前提及的分層存儲的概念,鏡像是由多層存儲所構成。下載也是一層層的去下載,并非單一文件。下載過程中給出了每一層的 ID 的前 12 位。如:6abc03819f3e: Pull complete ,并且下載結束后,給出該鏡像完整的 sha256 的摘要,以確保下載一致性。
運行通過docker pull 命令獲取到鏡像以后,就可以以這個鏡像為基礎啟動并運行一個容器。以上面的ubuntu:18.04 為例,如果我們打算啟動里面的 bash 并且進行交互式操作的話,可以執行下面的命令。
docker run -it --rm ubuntu:18.04 bash
從上圖就可以看出,我們進入了一個以ubuntu:18.04鏡像為基礎的容器環境了(其實也就是進入了一個ubuntu系統),也可以進行shell操作了,可以通過ls -al查看下:
通過 cat /etc/os-release來查看下該系統的一些基本信息:
再看下
docker run -it --rm ubuntu:18.04 bash
這個命令的意思表示啥
it :這是兩個參數,一個是 -i :交互式操作,一個是 -t 終端。我們這里打算進入 bash 執行一些命令并查看返回結果,因此我們需要交互式終端。
rm :這個參數是說容器退出后隨之將其刪除。默認情況下,為了排障需求,退出的容器并不會立即刪除,除非手動 docker rm 。我們這里只是隨便執行個命令,看看結果,不需要排障和保留結果,因此使用 --rm 可以避免浪費空間。ubuntu:18.04 :這是指用 ubuntu:18.04 鏡像為基礎來啟動容器。
bash :放在鏡像名后的是 命令,這里我們希望有個交互式 Shell,因此用的是 bash 。
最后我們通過 exit 退出了這個容器。
列出鏡像在使用Docker的過程中,難免需要查看下本地已經存在的可使用的鏡像的一些信息,這時候可以使用docker image ls命令來進行查看:
列表包含了 倉庫名 、 標簽 、 鏡像 ID 、 創建時間 以及 所占用的空間 。
其中倉庫名、標簽在之前有提到過。鏡像 ID 則是鏡像的唯一標識,一個鏡像可以對應多個 標簽。因此,在上面的例子中,我們可以看到ubuntu:18.04 和 ubuntu:latest 擁有相同的 ID,因為它們對應的是同一個鏡像。
對于用不到的鏡像,可以通過docker image rm命令進行刪除操作,格式為:
docker image rm [選項] <鏡像1> [<鏡像2> ...]
其中, <鏡像> 可以是 鏡像短 ID 、 鏡像長 ID 、 鏡像名 或者 鏡像摘要 。
看到圖中列出了三個鏡像,接下來對ngnix這個鏡像進行刪除操作:
我們可以用鏡像的完整 ID,也稱為 長 ID ,來刪除鏡像。使用腳本的時候可能會用長 ID,但是人工輸入就太累了,所以更多的時候是用 短 ID 來刪除鏡像。 docker image ls 默認列出的就已經是短 ID 了,一般取前3個字符以上,只要足夠區分于別的鏡像就可以了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27910.html
摘要:分層存儲因為鏡像包含操作系統完整的文件系統,其體積往往是龐大的,因此在設計時,就充分利用的技術,將其設計為分層存儲的架構。分層存儲的特征還使得鏡像的復用定制變的更為容易。 什么是Docker Docker 是一個開源的應用容器引擎,基于 Go 語言 并遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 L...
摘要:列出項目中目前的所有容器。刪除所有停止狀態的服務容器。一般的,當指定數目多于該服務當前實際運行容器,將新創建并啟動容器反之,將停止容器。命令說明恢復處于暫停狀態中的服務。 Compose 項目是 Docker 官方的開源項目,負責實現對 Docker 容器集群的快速編排。其代碼目前在 https://github.com/docker/com... 上開源。 介紹 Compose 定位...
摘要:列出項目中目前的所有容器。刪除所有停止狀態的服務容器。一般的,當指定數目多于該服務當前實際運行容器,將新創建并啟動容器反之,將停止容器。命令說明恢復處于暫停狀態中的服務。 Compose 項目是 Docker 官方的開源項目,負責實現對 Docker 容器集群的快速編排。其代碼目前在 https://github.com/docker/com... 上開源。 介紹 Compose 定位...
摘要:我們可以了解到,鏡像的定制實際上就是定制每一層所添加的配置文件。指令之指令的目的就是來指定基礎鏡像。指令之指令是用來執行命令行命令的。由于命令行的強大能力,指令在定制鏡像時是最常用的指令之一。構建鏡像這里我們使用了命令進行鏡像構建。 我們可以了解到,鏡像的定制實際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構建、操作的命令都寫入一個腳本,用這個腳本來構建、定制鏡...
閱讀 1439·2021-11-11 16:54
閱讀 9319·2021-11-02 14:44
閱讀 2371·2021-10-22 09:53
閱讀 3259·2019-08-30 11:18
閱讀 1951·2019-08-29 13:29
閱讀 2003·2019-08-27 10:58
閱讀 1623·2019-08-26 11:38
閱讀 3518·2019-08-26 10:31