1. 程式人生 > >Docker教程系列二:Docker鏡像操作

Docker教程系列二:Docker鏡像操作

包括 tfs 遠的 osi 其它 ali 存儲 cell 綁定

1什麽是Docker鏡像

Docker鏡像是由文件系統疊加而成(是一種文件的存儲形式)。最底端是一個文件引導系統,即bootfs,這很像典型的Linux/Unix的引導文件系統。Docker用戶幾乎永遠不會和引導系統有什麽交互。實際上,當一個容器啟動後,它將會被移動到內存中,而引導文件系統則會被卸載,以留出更多的內存供磁盤鏡像使用。Docker容器啟動是需要的一些文件,而這些文件就可以稱為Docker鏡像。

2列出鏡像

列出docker下的所有鏡像:docker images

l REPOSITORY:鏡像所在的倉庫名稱

l TAG:鏡像標簽

l IMAGE ID:鏡像ID

l CREATED:鏡像的創建日期(不是獲取該鏡像的日期)

l SIZE:鏡像大小

l 這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下

為了區分同一個倉庫下的不同鏡像,Docker提供了一種稱為標簽(Tag)的功能。每個鏡像在列出來時都帶有一個標簽,例如12.10、12.04等等。每個標簽對組成特定鏡像的一些鏡像層進行標記(比如,標簽12.04就是對所有Ubuntu12.04鏡像層的標記)。這種機制使得同一個倉庫中可以存儲多個鏡像。--- 版本號

我們在運行同一個倉庫中的不同鏡像時,可以通過在倉庫名後面加上一個冒號和標簽名來指定該倉庫中的某一具體的鏡像,例如docker run --name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash,表明從鏡像Ubuntu:12.04啟動一個容器,而這個鏡像的操作系統就是Ubuntu:12.04。在構建容器時指定倉庫的標簽也是一個好習慣。

3搜索鏡像

如果你需要從網絡中查找需要的鏡像,可以通過以下命令搜索

docker search 鏡像名稱

n NAME:倉庫名稱

n DESCRIPTION:鏡像描述

n STARS:用戶評價,反應一個鏡像的受歡迎程度

n OFFICIAL:是否官方

AUTOMATED:自動構建,表示該鏡像由Docker Hub自動構建流程創建的

4拉取鏡像

4.1從Docker Hub拉取

Docker鏡像首頁,包括官方鏡像和其它公開鏡像。Docker Hub上最受歡迎的10大鏡像(通過Docker registry API獲取不了鏡像被pull的個數,只能通過鏡像的stars數量,來衡量鏡像的流行度。毫無疑問,擁有最高stars數量的庫都是官方庫)。

國情的原因,國內下載 Docker HUB 官方的相關鏡像比較慢,可以使用國內(docker.io)的一些鏡像加速器,鏡像保持和官方一致,關鍵是速度塊,推薦使用。Mirror與Private Registry的區別:

Private Registry(私有倉庫)是開發者或者企業自建的鏡像存儲庫,通常用來保存企業內部的 Docker 鏡像,用於內部開發流程和產品的發布、版本控制。

Mirror是一種代理中轉服務,我們(比如daocloud)提供的Mirror服務,直接對接Docker Hub的官方Registry。Docker Hub 上有數以十萬計的各類 Docker 鏡像。

在使用Private Registry時,需要在Docker Pull 或Dockerfile中直接鍵入Private Registry 的地址,通常這樣會導致與 Private Registry 的綁定,缺乏靈活性。

使用 Mirror 服務,只需要在 Docker 守護進程(Daemon)的配置文件中加入 Mirror 參數,即可在全局範圍內透明的訪問官方的 Docker Hub,避免了對 Dockerfile 鏡像引用來源的修改。

簡單來說,Mirror類似CDN,本質是官方的cache;Private Registry類似私服,跟官方沒什麽關系。對用戶來說,由於用戶是要拖docker hub上的image,對應的是Mirror。yum/apt-get的Mirror又有點不一樣,它其實是把官方的庫文件整個拖到自己的服務器上做鏡像,並定時與官方做同步;而Docker Mirror只會緩存曾經使用過的image。

使用命令拉取:

docker pull centos:7

目前國內訪問docker hub速度上有點尷尬,使用docker Mirror勢在必行。現有國內提供docker鏡像加速服務的商家有不少,下面重點ustc鏡像。

4.2 ustc的鏡像

ustc是老牌的linux鏡像服務提供者了,還在遙遠的ubuntu 5.04版本的時候就在用。ustc的docker鏡像加速器速度很快。ustc docker mirror的優勢之一就是不需要註冊,是真正的公共服務。

https://lug.ustc.edu.cn/wiki/mirrors/help/docker

步驟:

(1)編輯該文件:vi /etc/docker/daemon.json // 如果該文件不存在就手動創建;說明:在centos7.x下,通過vi。

(2)在該文件中輸入如下內容:

{

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

}

(3)註意:一定要重啟docker服務,如果重啟docker後無法加速,可以重新啟動OS

然後通過docker pull命令下載鏡像:速度杠杠的。

5刪除鏡像

1、 docker rmi $IMAGE_ID:刪除指定鏡像

2、 docker rmi `docker images -q`:刪除所有鏡像

Docker教程系列二:Docker鏡像操作