1. 程式人生 > 其它 >Docker 01 概述

Docker 01 概述

Docker為什麼會出現

開發中的困擾

在日常開發中,想必都有這個場景:

測試:產品發版後又出問題了。

運維:我是按照開發給的包部署的,我排查下。

開發:我本地沒問題的呀。

一款產品,開發生產兩套環境,運維人員環境配置費時費力,且很容易出現問題。

且出現問題後,開發人員和運維人員排查問題都是十分痛苦的,因為一個產品往往涉及到諸多環境,產生影響的因素實在太多。

尋求解決

這時候不禁會想,要是開發人員能夠把程式碼環境一塊提供,運維人員拿來就直接執行,這個問題就迎刃而解了。

這就是所謂開發即運維,既能保證系統穩定性,也能提高部署效率。

為解決這一問題,Docker 橫空出世!

Docker的歷史

2010年,幾個搞 IT 的人,在美國成立一家公司 dotCloud

一開始他們是做一些 PaaS 的雲端計算服務。

他們將自己的容器化技術命名為 Docker

Docker 基於 Go 語言開發。

Docker 剛剛誕生的時候,並沒有引起行業的注意,這也導致 dotCloud 快要經營不下去。

為了公司能生存,他們決定開源,以尋求更多的關注。

2013 年,創始人將 Docker 開源,沒想到一下子爆火!剛開源的時候,每個月都會更新一個版本。

於是,2014 年 4 月 9 日,Docker 1.0 釋出。

Docker介紹

Docker 是一個開源的應用容器引擎。

Docker 的思想來自於集裝箱,彼此之間隔離。

Docker 通過隔離機制,可以將伺服器利用到極致。

Docker 容器完全使用沙箱機制,相互之間不會有任何介面。

Docker結構

  • 映象(image):Docker 映象好比一個模板,可以通過這個模板來建立容器(container),一個映象可以建立多個容器。

  • 容器(container):容器可以理解為一個簡易的系統。

  • 倉庫(repository):存放映象的地方。

Docker和虛擬機器的區別

Docker所使用的容器化技術本質上屬於虛擬化技術

提到虛擬化技術,最有名的就是虛擬機器技術

虛擬機器原理示意圖

它有以下明顯的缺點:

  • 資源佔用多。啟動虛擬機器非常佔記憶體,對電腦資源有不小的佔用。

  • 冗餘步驟多。啟動虛擬機器後,還需要進行一些步驟才能進入系統,效率比較低。

  • 啟動很慢。由於虛擬機器是虛擬化一整個系統,其啟動時間會比較緩慢,一般都需要幾分鐘。

容器化技術原理示意圖

由此可以看出,它不是模擬的完整的作業系統,而是基於作業系統封裝成了一小個執行環境。

區別

傳統虛擬機器 Docker
虛擬內容 硬體 + 完整的作業系統 + 軟體 APP + LIB
大小 笨重,通常幾個 G 輕便幾個 M 或 KB
啟動速度 慢,分鐘級 快,秒級

本文來自部落格園,作者:程式航,轉載請註明原文連結:https://www.cnblogs.com/codesail/p/15650316.html