咱們知道Image(鏡像)是Docker的三大組件之一,Docker 運行容器前須要本地存在對應的鏡像,若是本地不存在該鏡像,Docker 會從鏡像倉庫下載該鏡像。接下來先看看,怎樣去獲取鏡像。
DockerHub 上有大量的高質量的鏡像能夠用,這裏咱們就說一下怎麼獲取這些鏡像。
從 Docker 鏡像倉庫獲取鏡像的命令是 docker pull 。其命令格式爲:docker
docker pull [選項] [Docker Registry 地址[:端口號]/]倉庫名[:標籤]
具體的選項能夠經過 docker pull --help 命令看到,這裏咱們說一下鏡像名稱的格式。shell
先看一個例子,這裏拉取ubuntu的一個鏡像: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表示組。bash
從下載過程當中能夠看到咱們以前說起的分層存儲的概念,鏡像是由多層存儲所構成。下載也是一層層的去下載,並不是單一文件。下載過程當中給出了每一層的 ID 的前 12 位。如:6abc03819f3e: Pull complete ,而且下載結束後,給出該鏡像完整的 sha256 的摘要,以確保下載一致性。spa
經過docker pull 命令獲取到鏡像之後,就能夠以這個鏡像爲基礎啓動並運行一個容器。以上面的ubuntu:18.04 爲例,若是咱們打算啓動裏面的 bash 而且進行交互式操做的話,能夠執行下面的命令。code
docker run -it --rm \ ubuntu:18.04 \ bash
從上圖就能夠看出,咱們進入了一個以ubuntu:18.04鏡像爲基礎的容器環境了(其實也就是進入了一個ubuntu系統),也能夠進行shell操做了,能夠經過ls -al查看下:get
經過 cat /etc/os-release來查看下該系統的一些基本信息:域名
再看下it
docker run -it --rm \ ubuntu:18.04 \ bash
這個命令的意思表示啥class
最後咱們經過 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個字符以上,只要足夠區分於別的鏡像就能夠了。