Docker介紹

 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容器很快,啓動和中止能夠在秒級實現,這相比傳統的虛擬機方式要快得多。
  • Docker容器對系統資源需求不多,一臺主機上能夠同時運行數千個Docker容器。
  • Docker經過相似Git的操做來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。
  • Docker經過Dockerfile配置文件來支持靈活的自動化建立和部署機制,提升工做效率。

 

Docker架構

Docker 的核心組件包括:架構

  1. Docker 客戶端 - Clientapp

  2. Docker 服務器 - Docker daemonsocket

  3. Docker 鏡像 - Image工具

  4. Registry學習

  5. Docker 容器 - Containerui

Docker 架構以下圖所示:spa

Docker 採用的是 Client/Server 架構。客戶端向服務器發送請求,服務器負責構建、運行和分發容器。客戶端和服務器能夠運行在同一個 Host 上,客戶端也能夠經過 socket 或 REST API 與遠程的服務器通訊。

Docker 客戶端

最經常使用的 Docker 客戶端是 docker 命令。經過 docker 咱們能夠方便地在 Host 上構建和運行容器。

docker 支持不少操做(子命令),後面會逐步用到。

除了 docker 命令行工具,用戶也能夠經過 REST API 與服務器通訊。

Docker 服務器

Docker daemon 是服務器組件,以 Linux 後臺服務的方式運行。

Docker daemon 運行在 Docker host 上,負責建立、運行、監控容器,構建、存儲鏡像。

Docker 鏡像

可將 Docker 鏡像看着只讀模板,經過它能夠建立 Docker 容器。

例如某個鏡像可能包含一個 Ubuntu 操做系統、一個 Apache HTTP Server 以及用戶開發的 Web 應用。

鏡像有多種生成方法:

  1. 能夠從無到有開始建立鏡像

  2. 也能夠下載並使用別人建立好的現成的鏡像

  3. 還能夠在現有鏡像上建立新的鏡像

咱們能夠將鏡像的內容和建立步驟描述在一個文本文件中,這個文件被稱做 Dockerfile,經過執行 docker build <docker-file> 命令能夠構建出 Docker 鏡像,後面咱們會討論。

Docker 容器

Docker 容器就是 Docker 鏡像的運行實例。

用戶能夠經過 CLI(docker)或是 API 啓動、中止、移動或刪除容器。能夠這麼認爲,對於應用軟件,鏡像是軟件生命週期的構建和打包階段,而容器則是啓動和運行階段。

Registry

Registry 是存放 Docker 鏡像的倉庫,Registry 分私有和公有兩種。

Docker Hub(https://hub.docker.com/) 是默認的 Registry,由 Docker 公司維護,上面有數以萬計的鏡像,用戶能夠自由下載和使用。

出於對速度或安全的考慮,用戶也能夠建立本身的私有 Registry。後面咱們會學習如何搭建私有 Registry。

docker pull 命令能夠從 Registry 下載鏡像。
docker run 命令則是先下載鏡像(若是本地沒有),而後再啓動容器。

相關文章
相關標籤/搜索