第3章 映象--3.1 獲取映象
阿新 • • 發佈:2018-10-31
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。
下一節將介紹如何檢視映象資訊。