1. 程式人生 > >Docker入門介紹

Docker入門介紹

信息 架構 docker容器 輕量級 ica 集群 鏡像倉庫 eight 創建

Docker是一種虛擬化技術

? ? ? 剛開始看Docker,感覺非常抽象“An open platform for distributed applications for developers and sysadmins”這是Docker的標語。

“一個服務於分布式系統的開發人員和運維人員的開放平臺”。不是非常好理解,直到文檔中不斷地和虛擬機做對照,才理解到它可能是和虛擬機相關的技術。Docker是LXC容器技術的典型代表,LXC技術能夠實如今同一主機執行多個隔離的linux系統,通過linux內核功能實現輕量級的虛擬機。Docker技術盡管是虛擬化技術,卻差點兒不消耗除容器中的應用程序外的其它資源,能夠達到近乎裸機的執行能力,達到秒級/微秒級的部署。一臺實體機能夠執行幾百甚至上千個docker容器。並且有非常高的移植性,能夠在不論什麽平臺執行(包括物理機、虛擬機、雲平臺)。

普通虛擬機和Docker 容器的差別

技術分享圖片

每個虛擬機不僅包括程序、程序須要的包。並且還包括了一個操作系統,可是Docker容器是共享一個操作系統內核(kernel)的,這些容器通過命名空間相互獨立,執行起來就像是在宿主機上的一個孤立的線程。並且他們的執行地點非常的多樣化,不論什麽設備都能夠。

Docker的基本架構

Docker解決的問題

技術分享圖片圖中白色部分即為Docker

Build :docker同意開發人員把非常多微小的服務組裝成一個應用。不用操心生產環境和開發環境因為環境問題而產生的問題。並且不用操心不論什麽平臺或者不論什麽語言帶來的困擾。

Ship(Docker Hub) : Docker能夠讓你用一個統一的用戶接口設計從開發、測試到分發的一整套流程。
Run(Docker Cloud):Docker提供了幫你在多種平臺安全、可靠的部署高可擴展的服務的能力。

Docker的結構

技術分享圖片

Docker也是用的C/S的架構。由Docker client向Docker daemon發消息,告訴Docker ?須要做什麽。Client和daemon能夠在同一個操作系統下。也能夠在遠程。

兩者聯系的方式是:socket或者是RESTful API。

Docker daemon:docker daemon執行在宿主機上。用戶不能直接操作daemon,僅僅能通過docker client轉達。
Docker client:將用戶的指令轉發給Docker daemon,並接收Docker daemon返回的信息,展示給用戶。

Docker images:Docker 鏡像是一個僅僅讀的魔板。比如:一個鏡像能包括Ubuntu、Apache和你的應用。鏡像被用於創建Docker容器,Docker提供了簡單的方式去創建或者構建鏡像。你也能夠下載別人已經創建好的鏡像。

Docker containers:Docker containers 有點像一個文件夾。

一個Docker容器包括了一個應用執行所須要的一切,每個容器都是由Docker鏡像創建的,Docker 容器能夠run、started、stopped、moved、或者deleted。

每個容器都是相互獨立的。

Docker registries:Docker registries掛載了非常多鏡像。有公共或者私有的倉庫,讓你去更新或者下載鏡像。這些公共的Docker registry能夠被Docker Hub提供。Docker Hub提供了非常多的鏡像供你使用,你能夠用這些鏡像來創建自己的鏡像或者直接使用。
Docker 工作流程:1、build 自己的Docker鏡像 ?2、用自己創建的鏡像創建容器 ?3、通過Docker Hub或者自己搭建的registry分享這些鏡像

Docker組件

Docker Engine:提供了docker 創建鏡像和執行容器等的核心方法。
Docker Hub:相似於gitHub的東西,只是上面是docker 鏡像
Docker Machine :在雲端或者其它網絡環境中的Docker主機。
Docker Compose:用於定義多容器的應用。相當於省去了Docker container容器啟動時輸入的參數,讓多種容器之間的關系更加清晰。構建多個容器更加方便。

Docker Toolbox:在Mac和Windows安裝上的Docker安裝程序,正常大家安裝的Docker就是它,整合了全部的Docker 組件和工具。比如:Engine、Machine、Compose 還有Kitematic(可視化工具)。

Docker Trusted Registry;創建私有的專用的鏡像倉庫。
Docker Registry:創建開源的鏡像倉庫。

Docker Swarm:和Docker Machine一起配合做Docker集群相關的工作。


Docker入門介紹