Docker 是一個開源的應用容器引擎,基於Go語言並遵循Apacher 2.0 協議開源
Docker 引擎,是一個包含以下主要組件的客戶端服務程序(Docker 引擎的流程圖)
是一種服務器,它是一個被稱爲守護進程並且長時間運行的程序,Rest api 用於指定程序可以用來與守護進程進行通信的接口,並指示它可以做什麼,一個命令行的界面(cli) 工具的客戶端。
Docker 的功能特點:
輕鬆快捷的配置:
這是Docker 的一個主要的功能,可以幫助我們輕鬆快捷的配置系統,可以在更少的時間和精力下部署代碼,由於Docker 可以在各種個樣的環境中使用,基礎架構不再要求與用用程序的環境相關聯
提高工作效率:
通過放寬技術配置和應用的快速部署,毫無疑問,它節約了時間提高了生產率,Docker 不僅有助於在孤立的環境中執行應用程序(每一個應用是一個單獨的環境,每個環境都有一份獨立的OS 系統),而且還減少資源
應用隔離:
Docker 提供用於在隔離環境中運行應用程序的容器,每個容器都獨立於另一個容器,並允許任何類型的應用程序(因爲,每個容器的底層都有一個單獨的os 機制)
雲調用
它是Docker 容器的集羣和調度的工具,Swarm 使用Docker api 作爲其 前端,這有助於我們使用何種工具來控制它,它還可以將Docker 主機 集羣 控制一個虛擬主機,這是一個用於啓用可拔插後端的自組織引擎組,使用Swarm 來進行管理集羣
路有網
他可以用於節點上已發佈端傳入請求路由到活動容器,即使節點上沒有任務正在運行此功能也可以實現鏈接(容器與容器之間通信的路有網)
服務
服務值允許執行集羣內容器狀態的任務列表,每個任務表示一個應該運行的容器的實例,並且Swarm在節點之間的調度
安全管理
他允許將保密的數據保存到雲羣(Swarm)中,然後選擇給與服務訪問某些保密數據,它包含一些重要的命令給引擎,如保密的數據,保密數據的創建等
Docker 是cs模式(客戶端 --- 服務器端) 使用遠程的api 來管理和創建Docker 容器
Docker 容器通過Docker 鏡像來進行創建
容器和鏡像的關係類似於 面向對象編程中的類與對象
先有鏡像纔有容器,我們在使用容器端通過api 操作的是容器
首先使用Docker pull 去調用 Docker daemon ,如果此時本地倉庫中有鏡像,則可以直接創建容器,並且可以創建多個,但是當使用Docker pull 去調用 Docker daemon 去本地倉庫中查找鏡像不存在的時候,則會去Docker 的倉庫中拉取,並且當拉取到本地之後,使用Docker run 去進行創建容器,並且可以創建多個對象