docker如何快速瞭解並使用(詳解)(第一篇)(共五篇)
Docker
- docker的出現
Docker是誕生於2013年,是dotCloud的一個開源專案,基於Google推出的GO語言實現。遵從Apache2.0協議。 - docker的介紹
Docker的目標是實現輕量級的作業系統虛擬化的解決方案。
Docker的基礎是Linux容器(LXC)等技術,(LXC系統提供工具來管理容器,具有先進的網路和儲存支援,還有最小容器作業系統模版的廣泛選擇)。
在LXC的基礎上Docker進行了進一步的封裝,使用者不需要去關心容器的管理,操作更簡單。就像操作一個快速輕量的虛擬機器一樣簡單。 - docker的優勢
- 更快速的交付和部署。
Docker可以在整個開發週期輔助實現快速交付,允許開發者在裝有應用和伺服器本地容器做開發。可以直接整合到可持續的開發流程中。
Docker可以快速建立容器,快速迭代應用程式,過程全程可見,可以節約開發測試部署的時間。
例如:用一個標準的映象,構建一套開發容器,開發完成後,運維可以直接使用容器這個容器部署程式碼。 - 高效的部署和擴容。
Docker容器幾乎可以在任意平臺執行,包括物理機,虛擬機器,公有云,私有云,個人電腦,伺服器等。使用者可以把一個應用程式從一個平臺直接遷移到另一個平臺上。
Docker的相容性和輕量特性可以輕鬆的實現負載的動態管理 - 更高的資源利用率。
Docker對系統的利用率很高,一臺主機可以同時執行上千個Docker容器,容器除了執行其中的應用,不會消耗額外的系統資源,使應用效能很高。開銷減少。
例如:傳統的虛機方式執行10個不同的應用,需要起十個虛機.
而Docker只需要啟動10個隔離的應用即可。
4,更簡單的管理。
Docker只需要小小的修改,就可以代替大量的更新工作,所有的改動都
增量的方式被分發和更新,實現自動化高效的管理。
Docker引擎
Docker引擎是C/S結構的應用,主要元件如下。
-
Server是一個常駐程序
-
RESET API 實現了client(客戶端)和server(伺服器)的互動協議
-
CLI實現了容器和映象的管理,提供統一的操作介面。
Docker架構
Docker使用C/S架構,Cilent(客戶端)通過介面與Server(伺服器)進行通訊實現容器的構建,執行和釋出。Cilent和Server可以執行在同一臺叢集,也可以跨主機實現遠端通訊。
-
Client(客戶端)
-
Registry(登錄檔)
-
Images(映象)
-
Containers(容器)
-
Docker deamon 是docker的守護程序,Client通過命令與Docker deamon進行通訊,完成Docker相關操作。
-
Docker host是docker的網路模式,網路模式共四種。
核心概念:
映象(image)
Docker image只是一個只讀的模版。
映象(Image)是(read-only layer)的統一視角
Union File System將不同的層整合成一個檔案系統,提供了 一個統一的視角,可以隱藏多層的存在,對使用者來說,只是有一個檔案系統而已。
例如:一個映象可以包含一個完整的作業系統環境,裡面僅僅安裝了Apache或者使用者需要的其他的應用程式。映象可以用來建立Docker容器,一個映象中可以建立很多容器。Docker提供了一個簡單的機制來建立,更新現有的映象,使用者也可以下載一個做好的映象直接使用。
倉庫(repository)
Repository是一個存放映象檔案的場所。
倉庫註冊伺服器上往往存在多個倉庫,每個倉庫中又包含多個映象,每個映象有不同的標籤(tag)
倉庫分為public和private兩種形式。最大的公開倉庫是 Docker Hub存放了數量龐大的映象供使用者下載。國內有時速雲,網易雲等。使用者也可以在本地網路建立一個私有倉庫。
Docker倉庫跟Git類似,註冊服務可以理解為GitHub這種託管服務。
容器(Container)
Docker利用容器來執行應用,容器是從映象創建出來的執行例項,容器可以,被啟動,開始,停止,刪除。每個容器都可以相互隔離,保證平臺安全。
容器和映象的區別是映象是隻讀的,容器最上面的一層是可讀可寫的。
執行時的容器被定義為一個可讀可寫的統一的檔案系統。加上隔離程序空間和包含其中的程序。
檔案隔離技術使Docker成為了一個很有潛力的虛擬化技術,一個容器中的程序可能會對檔案進行修改,刪除,建立,這些改變作用於可讀寫層。
PS:(圖片是網上找的,內容屬於個人統計)
關於docker的一共寫了五篇,如果需要推薦檢視其餘四篇,以後有了新的會及時更新