擷取鏡像
在之前的介紹中,我們知道鏡像是 Docker 的三大元件之一。
Docker 運作容器前需要本地存在對應的鏡像,如果鏡像不存在本地,Docker 會從鏡像倉庫下載下傳(預設是 Docker Hub 公共注冊伺服器中的倉庫)。
本章将介紹更多關于鏡像的内容,包括:
- 從倉庫擷取鏡像;
- 管理本地主機上的鏡像;
- 介紹鏡像實作的基本原理。
可以使用
docker pull
指令來從倉庫擷取所需要的鏡像。
下面的例子将從 Docker Hub 倉庫下載下傳一個 Ubuntu 12.04 作業系統的鏡像。
$ sudo docker pull ubuntu:12.04
Pulling repository ubuntu
ab8e2728644c: Pulling dependent layers
511136ea3c5a: Download complete
5f0ffaa9455e: Download complete
a300658979be: Download complete
904483ae0c30: Download complete
ffdaafd1ca50: Download complete
d047ae21eeaf: Download complete
下載下傳過程中,會輸出擷取鏡像的每一層資訊。
該指令實際上相當于
$ sudo docker pull registry.hub.docker.com/ubuntu:12.04
指令,即從注冊伺服器
registry.hub.docker.com
中的
ubuntu
倉庫來下載下傳标記為
12.04
的鏡像。
有時候官方倉庫注冊伺服器下載下傳較慢,可以從其他倉庫下載下傳。 從其它倉庫下載下傳時需要指定完整的倉庫注冊伺服器位址。例如
$ sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04
Pulling dl.dockerpool.com:5000/ubuntu
ab8e2728644c: Pulling dependent layers
511136ea3c5a: Download complete
5f0ffaa9455e: Download complete
a300658979be: Download complete
904483ae0c30: Download complete
ffdaafd1ca50: Download complete
d047ae21eeaf: Download complete
完成後,即可随時使用該鏡像了,例如建立一個容器,讓其中運作 bash 應用。
$ sudo docker run -t -i ubuntu:12.04 /bin/bash
[email protected]:/#