1. 程式人生 > >《第一本Docker書》學習筆記——第4章 使用Docker鏡像和倉庫

《第一本Docker書》學習筆記——第4章 使用Docker鏡像和倉庫

有一個 學習筆記 mage 綁定 arch 4.3 ges tro puppet

4.2 列出鏡像

使用docker images命令:

sudo docker images

本地鏡像都保存在Docker宿主機的/var/lib/docker目錄下。
也可以在/var/lib/docker/containers目錄下看到所有的容器的ID。

鏡像從倉庫下載下來。鏡像保存在倉庫中,而倉庫存在於Registry中。磨人的Registry是由Docker公司運營的公共Registry服務,即Docker Hub。

代碼清單4-3 拉取Ubuntu 16.04的鏡像

sudo docker pull ubuntu:16.04

這裏使用了docker pull命令來拉取ubuntu倉庫中Ubuntu 16.04鏡像。

為了區分同一個倉庫中的不同景象,Docker提供了一種稱為 標簽(tag) 的功能。每個鏡像在列出來時都帶有一個標簽,如12.04、12.10、quantal或者precise等。每個標簽對組成特定鏡像的一些鏡像層進行標記(比如,標簽12.04就是對所有Ubuntu 12.04鏡像的層的標記)。這種機制使得在同一個倉庫中可以存儲多個鏡像。
我們可以通過在倉庫名後面加上一個冒號和標簽名來指定該倉庫中的某一鏡像:
代碼清單4-5 運行一個帶標簽的Docker鏡像

sudo docker run -t -i --name zifeiy_container ubuntu:16.04 /bin/bash

這個例子會從鏡像 ubuntu:16.04 啟動一個容器,而這個鏡像的操作系統則是Ubuntu 16.04。

4.3 拉取鏡像

代碼清單4-7 拉取fedora鏡像

sudo docker pull fedora:28

代碼清單4-8 查看fedora鏡像

sudo docker images fedora

4.4 查找鏡像

我們可以通過 docker search 命令來查找所有 Docker Hub 上公共的可用鏡像:
代碼清單4-10 查找鏡像

sudo docker search puppet

代碼清單4-11 拉取一個用戶鏡像jamtur01/puppetmaster

sudo docker pull jamtur01/puppetmaster

這條命令將會下載 jamtur01/puppetmaster

鏡像到本地(這個鏡像裏預裝了Puppet主服務器)。
接著就可以用這個鏡像構建一個容器了。下面就用 docker run 命令來構建一個容器:
代碼清單4-12 從Puppet master鏡像創建一個容器

sudo docker run -i -t jamtur01/puppetmaster /bin/bash

4.7 刪除鏡像

使用 docker rmi 命令來刪除一個鏡像:
代碼清單4-86 刪除Docker鏡像

sudo docker rmi jamtur01/static_web

代碼清單4-87 同時刪除多個Docker鏡像

sudo docker rmi jamtur01/apache2 jamtur01/puppetmaster

代碼清單4-88 刪除所有鏡像

sudo docker rmi `docker images -a -q`

4.8 運行自己的Docker Registry

4.8.1 從容器運行Registry

代碼清單4-89 運行基於容器的Registry

sudo docker run -p 5000:5000 registry:2

該命令將會啟動一個運行Registry應用2.0版本的容器,並將5000端口綁定到本地宿主機。

4.8.2 測試新Registry

首先下載一個Docker鏡像:

sudo docker pull jamtur01/static_web

代碼清單4-90 查看jamtur01/static_web Docker鏡像

sudo docker images jamtur01/static_web

我這裏jamtur01/static_web現實的IMAGE_ID是7c3b35d31608。我們找到了這個鏡像ID,並使用心得Registry給該鏡像打上標簽。為了制定新的Registry目的地址,需要在鏡像名前面加上主機名和端口前綴。在這個例子裏,我們的Registry主機名為localhost:
代碼清單4-91 使用新Registry為鏡像打標簽

sudo docker tag 7c3b35d31608 localhost:5000/jamtur01/static_web

為鏡像打完標簽之後,就能通過docker push命令將它推送到新的Registry中去了:
代碼清單4-92 將鏡像推送到新Registry

sudo docker push localhost:5000/jamtur01/static_web

這個鏡像就被提交到了本地的Registry中,並且可以將其用於使用 docker run 命令構建新容器:
代碼清單4-93 從本地Registry構建新的容器

sudo dockerr run -t -i localhost:5000/jamtur01/static_web /bin/bash

《第一本Docker書》學習筆記——第4章 使用Docker鏡像和倉庫