Docker運行一個容器實例以前,能夠以一個鏡像爲基礎環境,如以一個包含centos操做系統的Docker鏡像爲模板。創建容器以前,Docker會檢查本地是否存在對應的鏡像,若是鏡像不存在本地,Docker會嘗試從默認的鏡像倉庫(Repository,一般默認爲Docker Hub公共註冊服務器中的倉庫,用戶能夠根據具體環境和需求配置自定義鏡像倉庫)。linux
下面將介紹關於鏡像的相關操做及命令。web
查看鏡像信息docker
查看本地鏡像列表ubuntu
docker images命令能夠查看本地主機已有的鏡像列表,具體查詢屬性包括來源倉庫,標籤,ID,建立時間和鏡像大小等。centos
查看鏡像具體的信息安全
dpcler inspect ID能夠獲取鏡像 的詳細信息,執行後獲得一個JSON格式的消息,若是僅僅須要查詢鏡像的某一項信息,能夠使用-f參數來指定。例如,獲取鏡像的Author信息:服務器
$sudo docker inspect -f {{".Author"}} [IMAGE_ID]
給鏡像添加一個自定義標籤網絡
docker tag能夠給鏡像指定自定義(通常狀況下用於語義化)的標籤,實際上就是給某個鏡像添加一個「快捷方式」。學習
搜尋鏡像ui
docker search命令能夠搜索遠程鏡像倉庫內公共共享和私有的鏡像,默認爲Docker Hub官方鏡像倉庫,用法爲docker search TERM.
經過搜索命令能夠查詢到鏡像的名字、描述、star數量、是否官方建立、是否自動建立等信息。
獲取鏡像
docker pull命令能夠從網絡上下載鏡像到本地。命令格式爲docker pull NAME[:TAG](若是不顯式地指定TAG,默認會選擇lastest標籤)。
固然,若是須要從非默認的鏡像倉庫下載鏡像,也能夠經過docker pull URL進行鏡像的下載。固然,前提這個URL指向的是有效的遠程鏡像。
刪除鏡像
docker rmi命令用於刪除本地的鏡像,用法爲docker rmi IMAGE[IMAGES...],其中IMAGE能夠爲標籤或鏡像ID。前面咱們說起到標籤事實上是「快捷方式」,所以經過標籤刪除鏡像時,會先刪除這個「快捷方式」,當某個鏡像只剩下一個標籤時,經過刪除該標籤纔會把鏡像從本地移除掉。
若是你的鏡像還有正在運行中的容器實例的話,經過docker rmi是沒法移除掉的,固然,你能夠經過-f參數強制刪除某個鏡像,但這每每是不安全的。正確的作法是經過docker rm CONTAINER移除對應的容器,再經過docker rmi進行鏡像的刪除。
建立鏡像
通常狀況下,咱們能夠經過三種途徑進行Docker鏡像的建立:基於已有鏡像的容器的建立,本地模板導入、Dockerfile建立。
基於已有鏡像的容器建立鏡像
該方法主要依賴於docker commit命令,用法爲docker commit [OPTIONS] [RESPOSITORY[:TAG]],主要選項包括:
參數 | option | 說明 |
---|---|---|
-a | –author=」」 | 做者信息 |
-m | –message=」」 | 提交信息 |
-p | –pause=true | 提交時暫停容器運行 |
經過docker ps命令獲取須要建立鏡像的容器ID,經過執行:
$sudo docker commit -m "[MESSAGE]" -a "[AUTHOR]" [CONTAINER_ID] [IMAGE_NAME]
本地模板導入鏡像
docker import能夠從一個 打包好的鏡像文件建立鏡像,通常狀況下表現爲.tar.gz壓縮包。例如,導入一個ubuntu操做系統的鏡像到本地:
$sudo cat ubuntu-15.04-x86_64.tar.gz | docker import - ubuntu:15.04
Dockerfile建立鏡像
Dockerfile是一個文本格式的配置文件,實際表現爲命令集合,用戶經過自定義批處理命令來快速建立自定義鏡像。Dockerfile一般包含四部分:基礎鏡像信息,維護者信息,鏡像操做指令和容器啓動時指令。 編輯完Dockerfile文件後,經過docker build命令建立鏡像,例如:
$sudo docker build -t [TAG_NAME] [DOCKERFILE_PATH]
存出和載入鏡像
存出鏡像:docker save
$sudo docker save -o ubuntu-15.04-x86_64.tar ubuntu:15.04
載入鏡像:docker load
$sudo docker load --input ubuntu-15.04-x86_64.tar # 或者 $sudo docker load < ubuntu-15.04-x86_64.tar
上傳鏡像
docker push命令能夠將鏡像上傳到遠程倉庫(默認爲DockerHub官方倉庫,須要註冊帳號)。用法爲:docker push NAME[:TAG],強烈建議添加好語義化的標籤名後上傳。
小結
鏡像是開啓Docker容器的前提,掌握鏡像的概念以及對應的查看、獲取、搜索、刪除、建立、導入導出、上傳等操做對於Docker的入門學習有莫大的幫助。咱們還能夠藉助Docker Hub等鏡像倉庫還提供的更全面的鏡像服務進行學習和使用,例如web查詢系統 (http://index.docker.io/) 等,同時咱們也能夠將平常使用的高質量的鏡像資源分享到開源社區共同窗習。
免費提供最新Linux技術教程書籍,爲開源技術愛好者努力作得更多更好:http://www.linuxprobe.com/