Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口。docker
官網:https://www.docker.com/
相關資料:
一、Docker入門教程 http://dockone.io/article/111
二、Docker_百度百科 http://baike.baidu.com/view/11854949.htm
三、史上最全Docker資料集粹 http://special.csdncms.csdn.net/BeDocker/
四、Docker - 話題精華 - 知乎 http://www.zhihu.com/topic/19950993/top-answers
五、docker 簡明教程 | 簡果網 http://www.simapple.com/docker-tutorial
六、如何使用Dockerfile構建鏡像 http://blog.csdn.net/qinyushuang/article/details/43342553
七、Dockerfile reference - Docker https://docs.docker.com/engine/reference/builder/安全
做爲一種輕量級的虛擬化方式,Docker在運行應用上跟傳統的虛擬機方式相比具備顯著優點:服務器
Docker 的核心組件包括:架構
Docker 客戶端 - Clientapp
Docker 服務器 - Docker daemonsocket
Docker 鏡像 - Image工具
Registry學習
Docker 容器 - Containerui
Docker 架構以下圖所示:spa
Docker 採用的是 Client/Server 架構。客戶端向服務器發送請求,服務器負責構建、運行和分發容器。客戶端和服務器能夠運行在同一個 Host 上,客戶端也能夠經過 socket 或 REST API 與遠程的服務器通訊。
最經常使用的 Docker 客戶端是 docker
命令。經過 docker
咱們能夠方便地在 Host 上構建和運行容器。
docker 支持不少操做(子命令),後面會逐步用到。
除了 docker
命令行工具,用戶也能夠經過 REST API 與服務器通訊。
Docker daemon 是服務器組件,以 Linux 後臺服務的方式運行。
Docker daemon 運行在 Docker host 上,負責建立、運行、監控容器,構建、存儲鏡像。
可將 Docker 鏡像看着只讀模板,經過它能夠建立 Docker 容器。
例如某個鏡像可能包含一個 Ubuntu 操做系統、一個 Apache HTTP Server 以及用戶開發的 Web 應用。
鏡像有多種生成方法:
能夠從無到有開始建立鏡像
也能夠下載並使用別人建立好的現成的鏡像
還能夠在現有鏡像上建立新的鏡像
咱們能夠將鏡像的內容和建立步驟描述在一個文本文件中,這個文件被稱做 Dockerfile,經過執行 docker build <docker-file>
命令能夠構建出 Docker 鏡像,後面咱們會討論。
Docker 容器就是 Docker 鏡像的運行實例。
用戶能夠經過 CLI(docker)或是 API 啓動、中止、移動或刪除容器。能夠這麼認爲,對於應用軟件,鏡像是軟件生命週期的構建和打包階段,而容器則是啓動和運行階段。
Registry 是存放 Docker 鏡像的倉庫,Registry 分私有和公有兩種。
Docker Hub(https://hub.docker.com/) 是默認的 Registry,由 Docker 公司維護,上面有數以萬計的鏡像,用戶能夠自由下載和使用。
出於對速度或安全的考慮,用戶也能夠建立本身的私有 Registry。後面咱們會學習如何搭建私有 Registry。
docker pull
命令能夠從 Registry 下載鏡像。docker run
命令則是先下載鏡像(若是本地沒有),而後再啓動容器。