docker鏡像是一個(gè)只讀模板,它包含創(chuàng)建Docker容器的說明。我們可以理解為鏡像是Java中的類,容器是Java類的實(shí)例化,啟動(dòng)鏡像相當(dāng)于new 一個(gè)docker容器。
Docker 運(yùn)行容器前需要本地存在對(duì)應(yīng)的鏡像,如果鏡像不存在本地,Docker 會(huì)從鏡像倉庫下載(默認(rèn)是 Docker Hub 公共注冊(cè)服務(wù)器中的倉庫-----如果從 Docker Hub 下載鏡像非常緩慢,可以參照后面的章節(jié)配置鏡像加速器)。
查看本機(jī)已安裝鏡像列表
docker images

各個(gè)選項(xiàng)說明:
REPOSITORY:表示鏡像的倉庫源
TAG:鏡像的標(biāo)簽
IMAGE ID:鏡像ID
CREATED:鏡像創(chuàng)建時(shí)間
SIZE:鏡像大小
查找鏡像
我們可以從?Docker Hub?網(wǎng)站來搜索鏡像,Docker Hub?網(wǎng)址為:?https://hub.docker.com/
我們也可以使用?docker search?命令來搜索鏡像。
docker search mysql

下載需要的鏡像
從 Docker Registry 獲取鏡像的命令是 docker pull 。其命令格式為:
docker pull [選項(xiàng)] [Docker Registry地址]<倉庫名>:<標(biāo)簽>
Docker Registry地址:地址的格式一般是 <域名/IP>[:端口號(hào)] 。默認(rèn)地址是Docker Hub。
倉庫名:如之前所說,這里的倉庫名是兩段式名稱,既 <用戶名>/<軟件名> 。對(duì)于 Docker Hub,如果不給出用戶名,則默認(rèn)為 library ,也就是官方鏡像。
比如:
$ docker pull ubuntu:14.04
...............
Status: Downloaded newer image for ubuntu:14.04
上面的命令中沒有給出 Docker Registry 地址,因此將會(huì)從 Docker Hub 獲取鏡像。而鏡像名稱是 ubuntu:14.04 ,因此將會(huì)獲取官方鏡像 library/ubuntu倉庫中標(biāo)簽為 14.04 的鏡像。
如下所示我們沒有寫標(biāo)簽,則默認(rèn)下載最新版本的:
docker pull docker.io/centos
通過 docker images?查看已經(jīng)下的鏡像

啟動(dòng)鏡像實(shí)例
docker run -it? docker.io/centos /bin/bash
-it :這是兩個(gè)參數(shù),一個(gè)是 -i :交互式操作,一個(gè)是 -t 終端。我們這里打算進(jìn)入 bash 執(zhí)行一些命令并查看返回結(jié)果,因此我們需要交互式終獲取鏡像端。
/bin/bash :放在鏡像名后的是命令,這里我們希望有個(gè)交互式 Shell,因此用的是 bash 。

當(dāng)利用?docker run?來創(chuàng)建容器時(shí),Docker 在后臺(tái)運(yùn)行的標(biāo)準(zhǔn)操作包括:
檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
利用鏡像創(chuàng)建并啟動(dòng)一個(gè)容器
分配一個(gè)文件系統(tǒng),并在只讀的鏡像層外面掛載一層可讀寫層
從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中去
從地址池配置一個(gè) ip 地址給容器
執(zhí)行用戶指定的應(yīng)用程序
執(zhí)行完畢后容器被終止
退出鏡像實(shí)例
? ? exit 退出容器時(shí),容器會(huì)關(guān)閉。如果想要容器后臺(tái)運(yùn)行則:Ctrl +q+p 。
exit
啟動(dòng)、停止、重啟容器的命令:
?docker start 1d5...
?docker stop 1d5...
docker restart 1d5...