目錄
一、認(rèn)識 Docker
1. 什么是虛擬化
2. 什么是 Docker
3. 為什么選擇 Docker?
二、容器與虛擬機的區(qū)別
三、Docker 組件
1. Docker 服務(wù)器與客戶端
2. Docker 鏡像與容器
3. Registry 注冊中心
一、認(rèn)識 Docker
1. 什么是虛擬化
虛擬化是一種資源管理技術(shù),將計算機的各種實體資源如服務(wù)器、內(nèi)存、網(wǎng)絡(luò)等抽象或者轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間不可切割的狀態(tài),使得用戶有更好的方式來應(yīng)用這些資源。虛擬部分不受現(xiàn)有資源的架設(shè)方式、地域、物理組態(tài)等限制。
一般所指的虛擬化資源包括計算能力和存儲資源。在實際生產(chǎn)環(huán)境中,虛擬化技術(shù)主要用來解決高性能的物理硬件產(chǎn)能過剩和老舊硬件產(chǎn)能過低的重組重用,透明化底層物理硬件,達(dá)到利用的最大化。虛擬化技術(shù)包括軟件虛擬化、硬件虛擬化、內(nèi)存虛擬化、網(wǎng)絡(luò)虛擬化、桌面虛擬化、服務(wù)虛擬化、虛擬機等。
2. 什么是 Docker
Docker 本身就是一種虛擬化技術(shù),但和傳統(tǒng)虛擬化技術(shù)又有一定的區(qū)別。誕生于 2013 年,是一個開源的項目,它基于 Google 公司的 go 語言實現(xiàn),后來加入了 Linux 基金會,遵循 apache 2.0 協(xié)議,項目在 GitHub 進(jìn)行維護,它的目標(biāo)是實現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案。
Docker 的基礎(chǔ)是 Linux 容器(LXC),在 LXC 的基礎(chǔ)上進(jìn)行了進(jìn)一步的封裝,讓用戶無需再去關(guān)心容器的管理,使得操作更為簡易,用戶操作 Docker 的容器就像操作虛擬機一樣簡單。
3. 為什么選擇 Docker?
上手快;
用戶僅需幾分鐘就可以把自己的程序 “Docker” 化,Docker 依賴于 “寫時復(fù)制(copy-on-write)” 模型,修改程序應(yīng)用極為迅速,可以說達(dá)到了 “隨心所欲,代碼即改” 的境界。
職責(zé)的邏輯分類;
使用 Docker,開發(fā)人員只需關(guān)心容器中運行的應(yīng)用程序,運維人員只需關(guān)心如何管理容器,加強了開發(fā)人員的開發(fā)環(huán)境與應(yīng)用程序部署生產(chǎn)環(huán)境的一致性。
快速高效的開發(fā)生命周期;
Docker 的目標(biāo)之一就是縮短代碼從開發(fā)、測試、部署、上線到運行的周期,讓程序易于可移植性、易于構(gòu)建和協(xié)作。
鼓勵使用面向服務(wù)的架構(gòu);
Docker 鼓勵面向服務(wù)的體系架構(gòu)和微服務(wù)架構(gòu)。它推薦單個容器只運行一個程序或進(jìn)程,這就形成了分布式的應(yīng)用程序模型。Docker 為微服務(wù)而生。
二、容器與虛擬機的區(qū)別
首先是傳統(tǒng)的虛擬化技術(shù),以 Hypervisor 為例(類似于 VMware 虛擬機)。
- 最底層(第 0 層)為 Server,也就是服務(wù)器的硬件;
- 第 1 層為服務(wù)器本身的操作系統(tǒng);
- 第 2 層是管理虛擬機的軟件(虛擬層);
- 第 3 層就是虛擬機,可以有若干個,要注意這些虛擬機的操作系統(tǒng)與本地的操作系統(tǒng)是沒有任何關(guān)系的,因為它是運行在虛擬層的軟件上的。
其次為容器技術(shù)機制,底層和第一層與傳統(tǒng)虛擬技術(shù)相同。
- 第 2 層為 Docker 引擎,也就是我們安裝的 Docker 軟件;
- 第 3 層為二進(jìn)制的一些庫和各種應(yīng)用軟件;
可以看到,二者的主要區(qū)別在于虛擬層和 Docker 引擎(第 2、3 層)。
虛擬層可以虛擬一些硬件,虛擬出不同類型的操作系統(tǒng),所以虛擬操作系統(tǒng)與本地操作類型是不一定一致的。而在 Docker 機制中,每個應(yīng)用軟件(容器)沒有自己的操作系統(tǒng)的,它的環(huán)境直接依賴于本機操作系統(tǒng)的環(huán)境,調(diào)用的也直接是本機操作系統(tǒng)。
容器是在操作系統(tǒng)層面上實現(xiàn)虛擬化,直接復(fù)用本地主機的操作系統(tǒng),傳統(tǒng)方式則是在硬件層面實現(xiàn)。與傳統(tǒng)的虛擬機相比,Docker 的優(yōu)勢體現(xiàn)為啟動速度快、占用體積小。
三、Docker 組件
1. Docker 服務(wù)器與客戶端
Docker 是一種客戶端-服務(wù)器(C/S)架構(gòu)模式,Docker 客戶端只需要向服務(wù)器或守護進(jìn)程發(fā)送請求,服務(wù)器或守護進(jìn)程將完成所有工作并返回結(jié)果。
2. Docker 鏡像與容器
鏡像是構(gòu)建 Docker 的基石,用戶基于鏡像運行自己的容器。鏡像是基于文件系統(tǒng)的一種層式結(jié)構(gòu),由一系列指令一步一步構(gòu)建出來。鏡像體積很小,便于分享、存儲和更新。
Docker 可以幫助構(gòu)建和部署容器,只需要把自己的應(yīng)用程序或服務(wù)打包放進(jìn)容器即可。容器是基于鏡像啟動起來的,容器中可以運行一個或多個進(jìn)程??梢哉J(rèn)為鏡像是 Docker 生命周期中的構(gòu)建或者打包階段,而容器則是啟動或者執(zhí)行階段。容器基于鏡像啟動,一旦容器啟動完成后,我們就可以登錄到容器中安裝自己需要的軟件或者服務(wù)。
所以說容器就是一個鏡像格式、一些列標(biāo)準(zhǔn)操作、一個執(zhí)行環(huán)境。
3. Registry 注冊中心
Docker 用 Registry 來保存用戶構(gòu)建的鏡像,分為公共和私有兩種。Docker 公司運營公共的 Registry 叫做 Docker Hub。用戶可以在 Docker Hub 注冊賬號,分享并保存自己的鏡像。Docker Hub 網(wǎng)址如下:
Docker Hubhttps://hub.docker.com/文章來源:http://www.zghlxwxcb.cn/news/detail-814884.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-814884.html
到了這里,關(guān)于【云原生 ? Docker】docker 入門、docker 與虛擬機對比、docker 組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!