您好,登錄后才能下訂單哦!
這篇文章主要介紹了為什么會有Docker出現,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一.為什么會有Docker出現
一款產品從開發到上線,從操作系統,到運行環境,再到應用配置。作為開發+運維之間的協作我們需要關心很多東西,這也是很多互聯網公司都不得不面對的問題,特別是各種版本的迭代之后,不同版本環境的兼容,對運維人員都是考驗 .Docker之所以發展如此迅速,也是因為它對此給出了一個標準化的解決方案。
環境配置如此麻煩,換一臺機器,就要重來一次,費力費時。很多人想到,能不能從根本上解決問題,軟件可以帶環境安裝?也就是說,安裝的時候,把原始環境一模一樣地復制過來。
開發人員利用 Docker 可以消除協作編碼時“在我的機器上可正常工作”的問題。開發需要清楚的告訴運維部署團隊,用的全部配置文件+所有軟件環境不過,即便如此,仍然常常發生部署失敗的狀況。
Docker鏡像的設計,使得Docker得以打破過去"程序即應用" 的觀念。透過鏡像(images)將作業系統核心除外,運作應用程式所需要的系統環境,由下而上打包,達到應用程式跨平臺間的無縫接軌運作。在這里插入圖片描述。
二.什么是Docker
Docker是基于Go語言實現的云開源項目。Docker的主要目標是“Build,Ship and Run Any APP,Anywhere”,也就是通過對應組件的封裝、分發、部署、運行等生命周期的管理,是用戶的App及其運行環境能夠做到“一次封裝,到處運行”。
Linux容器技術的出現就解決了這樣一個問題,而Docker就是在它的基礎上發展過來的。將應用運行的Docker容器上面,而Docker容器在任何操作系統上都是一致的,這就實現了跨平臺、跨服務器。只需要一次配置好環境,換到別的機器上就可以一鍵部署好,大大簡化了操作,Docker解決了運行環境和配置軟件容器,方便做持續集成并有助于整體發布的容器虛擬化技術。
三.虛擬機技術與容器虛擬化技術
虛擬機就是帶環境安裝的一種解決方案。 它可以在一種操作系統里面運行另一種操作系統,比如在windows系統里運行Linux系統。應用程序對此毫無感知,因為虛擬機看上去就跟真實的系統一樣,能夠使應用程序,操作系統和硬件三者之間邏輯不變
虛擬機的缺點:
資源占用多
冗余步驟多
啟動慢
由于虛擬機存在這些缺點,Linux發展出了另一種虛擬化技術:Linux容器(LinuxContainers,縮寫為LXC)。
Linux容器不是模擬一個完整的操作系統,而是對進程進程進行隔離。有了容器就可以將軟件運行所需的所有資源打包到一個隔離的容器中。容器與虛擬機不同,不需要捆包一整套操作系統,只需要軟件工程所需的庫資源和設置。系統因此而變得高效輕量并保證部署在任何環境中的軟件都能始終如一的工作。
比較Docker和傳統虛擬機方式的不同之處:
傳統虛擬機技術是虛擬機出一套硬件后,在其上運行一個完整操作系統,在該系統上在運行所需應用進程;
而容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統虛擬機更為輕便。每個容器之間相互隔離,每個容器有自己的文件系統,容器之間進程不會互相影響,能區分計算字資源。
四.Docker的基本組成
Docker鏡像(image)就是一個只讀的模板。鏡像可以用來創建Docker容器,一個鏡像可以創建很多容器。
Docker容器(Container)獨立運行的一個或一組應用。容器就是鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個建議的Linux環境和運行在其中的應用程序。容器的定義和鏡像幾乎一模一樣,也是一堆層的統一視角,唯一區別在于容器的最上層那一層是可讀可寫的。
Docker倉庫(Repository)是集中存放鏡像文件的場所。倉庫和倉庫注冊服務器是有區別的。倉庫注冊服務器上往往存放著很多個倉庫,每一個倉庫又包含了多個鏡像,每個鏡像有不同的的標簽(tag)。倉庫分為公開倉庫和私有倉庫兩種形式。最大的公開倉庫是DockerHub
Docker本身是一個容器運行載體或稱之為管理引擎。我們把應用程序或配置依賴打包好形成一個可交付的運行環境,這個打包好的運行環境就似乎image鏡像文件。只有通過這個鏡像文件才能生成Docker容器。image文件可以看作是容器的模板。Docker根據image文件生成容器的實例。可以生成多個同時運行的容器實例。
五、為什么使用Docker
Docker 在如下幾個方面具有較大的優勢:
更快速的交付和部署
Docker在整個開發周期都可以***的輔助你實現快速交付。Docker允許開發者在裝有應用和服務本地容器做開發。可以直接集成到可持續開發流程中。
開發者可以使用一個標準的鏡像來構建一套開發容器,開發完成之后,運維人員可以直接使用這個容器來部署代碼。 Docker 可以快速創建容器,快速迭代應用程序,并讓整個過程全程可見,使團隊中的其他成員更容易理解應用程序是如何創建和工作的。 Docker 容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。
高效的部署和擴容
Docker 容器幾乎可以在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、個人電腦、服務器等。 這種兼容性可以讓用戶把一個應用程序從一個平臺直接遷移到另外一個。
Docker的兼容性和輕量特性可以很輕松的實現負載的動態管理。你可以快速擴容或方便的下線的你的應用和服務,這種速度趨近實時。
更高的資源利用率
Docker 對系統資源的利用率很高,一臺主機上可以同時運行數千個 Docker 容器。容器除了運行其中應用外,基本不消耗額外的系統資源,使得應用的性能很高,同時系統的開銷盡量小。傳統虛擬機方式運行 10 個不同的應用就要起 10 個虛擬機,而Docker 只需要啟動 10 個隔離的應用即可。
更簡單的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化并且高效的管理。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“為什么會有Docker出現”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。