1. 程式人生 > >第3章 映象--3.1 獲取映象

第3章 映象--3.1 獲取映象

Docker 執行容器前需要本地存在對應的映象,如果映象不存在本地,Docker 會從映象倉庫下載(預設是 Docker Hub 公共註冊伺服器中的倉庫)。
本章將介紹更多關於映象的內容,包括:

  • 從倉庫獲取映象;
  • 管理本地主機上的映象;
  • 介紹映象實現的基本原理。

獲取映象

映象時Docker 執行容器的前提。公共映象倉庫Docker Hub 以及阿里雲的 容器映象服務控制檯上有大量的高質量的映象可以用。

從 Docker Registry 獲取映象的命令是  docker pull  。其命令格式為:

docker pull [選項] [Docker Registry地址]<倉庫名>:<標籤>

具體的選項可以通過  docker pull --help  命令看到,這裡我們說一下映象名稱的格式。

  • Docker Registry地址:地址的格式一般是  <域名/IP>[:埠號]  。預設地址是 Docker Hub。
  • 倉庫名:如之前所說,這裡的倉庫名是兩段式名稱,既  <使用者名稱>/<軟體名>  。對於 Docker Hub,如果不給出使用者名稱,則預設為  library  ,也就是官方映象。

比如:

$ docker pull nginx

該命令相當於:

$ sudo docker pull registry.hub.docker.com/nginx:latest

即從註冊伺服器registry.hub.docker.com 的nginx 倉庫中下載標記為latest 的映象。當然latest可以被替換為具體的 tag 標籤。一般指代該映象的版本。

若是從其他註冊伺服器的倉庫下載,則需在倉庫名稱前指定完整的註冊伺服器地址。以阿里云為例:

$ sudo docker pull registry.cn-hangzhou.aliyuncs.com//busybox

映象下載到本地後,即可使用映象建立容器應用了。

$ sudo docker run -it --rm docker.io/nginx /bin/bash
[email protected]
:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

其中0f12efc2b28e,是容器的ID。

docker run  就是執行容器的命令,具體格式我們會在後面的章節講解,我們這裡簡要的說明一下上面用到的引數。

  • -it  :這是兩個引數,一個是  -i  :互動式操作,一個是  -t  終端。我們這裡打算進入  bash  執行一些命令並檢視返回結果,因此我們需要互動式終端。
  • --rm :這個引數是說容器退出後隨之將其刪除。預設情況下,為了排障需求,退出的容器並不會立即刪除,除非手動  docker rm  。我們這裡只是隨便執行個命令,看看結果,不需要排障和保留結果,因此使用  --rm  可以避免
    浪費空間。
  • docker.io/nginx:這是指用  docker.io/nginx:latest 映象為基礎來啟動容器。
  • /bin/bash  :放在映象名後的是命令,這裡我們希望有個互動式 Shell,因此用的是  bash  。

退出容器可以使用 Ctrl+d 或 exit。

下一節將介紹如何檢視映象資訊。