什麼是Docker?

Docker簡介

Docker是什麼

Docker是一個應用的應用容器引擎,基於GO語言並遵從Apache2.0協議開源.
讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發佈到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

Docker的主要目標:通過對應用組件的封裝、分發、部署、運行等生命週期的管理,達到應用組件級別的‘一次封裝,到處運行’.應用組件既可以是一個WEB應用,也可以是一套數據庫服務,甚至是一個操作系統或編譯器

Docker與傳統虛擬機的對比

傳統虛擬機技術是虛擬出一套硬件後,在其上運行一個完整操作系統,在該系統上再運行所需應用進程;而容器內的應用沒有自己的內核,而且也沒有進行硬件虛擬。因此容器要比傳統虛擬機更爲輕便。

  • Docker容器很快,啓動和停止可以在秒級實現,這相比傳統的虛擬機方式要快得多
  • Docker容器對系統資源需求很少,一臺主機上可以同時運行數千個Docker容器
  • Docker通過類似Git得操作賴來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低
  • Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率

爲什麼要使用Docker

  • Docker的鏡像提供了除內核外完整的運行時環境,確保了應用運行環境一致性,從而不會再出現“這段代碼在我機器上沒問題啊”這類問題;—— 一致的運行環境
  • 可以做到秒級、甚至毫秒級的啓動時間。大大的節約了開發、測試、部署的時間。——更快速的啓動時間
  • 避免公用的服務器,資源會容易受到其他用戶的影響。——隔離性
  • 善於處理集中爆發的服務器使用壓力;——彈性伸縮,快速擴展
  • 可以很輕易的將在一個平臺上運行的應用,遷移到另一個平臺上,而不用擔心運行環境的變化導致應用無法正常運行的情況。——遷移方便
  • 使用Docker可以通過定製應用鏡像來實現持續集成、持續交付、部署。——持續交付和部署

虛擬化與Docker

虛擬化

虛擬化技術是一個通用的概念,在不同領域有不同的理解。在計算領域,一般指的是計算虛擬化或通常說的服務器虛擬化:虛擬化是一種資源管理技術,是將計算機的各種實體資源,如服務器、網絡、內存及存儲等,予以抽象、轉換後呈現出來,打破實體結構間得不可切割得障礙,使用戶可以用比原本的組態更好的方式來應用這些資源
即:對資源進行抽象,目標往往是爲在同一個主機上運行多個系統或應用,從而提高系統資源的利用率,同時帶來降低成本、方便管理和容錯容災等好處

Docker核心概念和安裝

Docker鏡像

Docker鏡像類似於虛擬機鏡像,可以將它理解爲一個面向Docker引擎的只讀模板,包含文件系統.例如:一個鏡像可以只包含一個完整的Ubuntu操作系統環境,可以把它成爲一個Ubuntu鏡像

存儲結構
由於 Docker 鏡像是多層存儲結構, 並且可以繼承、 複用,
因此不同鏡像可能會因爲使用相同的基礎鏡像, 從而擁有共同的層。 由於 Docker
使用 Union FS, 相同的層只需要保存一份即可, 因此實際鏡像硬盤佔用空間很可
能要比這個列表鏡像大小的總和要小的多

中間層鏡像

爲了加速鏡像構建、 重複利用資源, Docker 會利用 中間層鏡像。 所以在使用一段
時間後, 可能會看到一些依賴的中間層鏡像。

Docker容器

Docker容器類似於一個輕量級的沙箱,Docker利用容器來運行和隔離應用。容器是從鏡像創建得應用實例,這些容器都是相互隔離、互不可見的(容器看作簡易版得linux系統環境,以及運行在期中得應用程序打包而成得應用盒子.鏡像本身只讀,容器從鏡像啓動得時候,Docker會在鏡像的最上層創建一個可寫層,鏡像本身保持不變)

Docker倉庫

Docker倉庫類似於代碼倉庫,是Docker集中存放鏡像文件得場所.根據所存儲得鏡像公開分享與否,Docker倉庫可以分爲公開倉庫和私有倉庫.與之容易混淆的概念是註冊註冊服務器(Registry).註冊服務器是存放倉庫的具體服務器,每個服務器上可以有多個倉庫,而每個倉庫下面有多個鏡像.

總結

鏡像—Docker的鏡像和常見的系統ISO鏡像類似,包含了應用程序的信息;

容器—容器相當於一個可以運行起來的虛擬機,應用程序運行在容器中,Docker運行在“Docker”上;

倉庫—倉庫是存放鏡像的地方,有類似git的版本控制,同樣分爲公開倉庫(Public)和私有倉庫(Private)兩種形式;

歡迎訪問個人技術博客:彬小兒的博客,裏面的內容更精彩!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章