Docker虛擬化概念
1、虛擬化技術(shù)的概念
- 虛擬化技術(shù)主要是將物理資源轉(zhuǎn)變?yōu)檫壿嬌峡梢怨芾淼馁Y源;
- 用以打破物理資源結(jié)構(gòu)之間的壁壘;
- 讓計(jì)算的原件運(yùn)行在虛擬的基礎(chǔ)之上;而不是直接運(yùn)行在硬件設(shè)備資源上;
說白了就是硬件資源轉(zhuǎn)變成虛擬資源;
虛擬化技術(shù)的底層是要進(jìn)行虛擬的硬件設(shè)備物理機(jī),通過虛擬化技術(shù)可以將物理機(jī)虛擬生成N臺虛擬機(jī)、應(yīng)用程序、軟件服務(wù)是運(yùn)行在虛擬機(jī)上的,而不是直接運(yùn)行在物理設(shè)備機(jī)上
應(yīng)用程序:
- Nginx、MySQL、Redis 、MQ、ZK、Kafka;
當(dāng)下主流技術(shù):
- 虛擬化、:
- -虛擬化技術(shù)允許一個(gè)平臺同時(shí)運(yùn)行多個(gè)操作系統(tǒng),
- 并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,
- 從而顯著提高計(jì)算機(jī)的工作效率,是一個(gè)為了簡化管理,優(yōu)化資源的解決方案。
- 云計(jì)算:
- 大數(shù)據(jù)
2、虛擬化技術(shù)的意義
虛擬化技術(shù)主要是為了最大化利用高配硬件設(shè)備的資源,提供機(jī)器資源利用率;
- 如果物理資源已經(jīng)全部用完了,其他的程序就無法使用
可以對軟件服務(wù)、進(jìn)程資源進(jìn)行隔離、限制;
- 限制內(nèi)存分配、硬盤、CPU的分配
可以淘汰老、舊服務(wù)器資源,對老、舊、服務(wù)器資源進(jìn)行重組、重用、加快企業(yè)自動化運(yùn)維&DevOps腳步進(jìn)程
- 硬件整合,
3、虛擬化技術(shù)的種類
- VMware ESXI
- VMware workstations:
- vmware公司的產(chǎn)品
- XEN
- KVM:
- 最終的產(chǎn)物就是虛擬環(huán)境、虛擬機(jī)
- 用于業(yè)務(wù),
- 虛擬機(jī)也可以理解為云主機(jī)
- Open-vz
- Hyper-V:
- 微軟的虛擬化軟件
- Podman:
- 比較火?就是docker 的命令?
- 很相似–>掌握思想,學(xué)習(xí)思路
- podman pull nginx
- docker pull nginx
- Docker:
- Docker被淘汰了?
- K8S不用docker用于底層管理;
- 運(yùn)維都很焦慮?
4、Docker簡介
- Docker 是眾多虛擬化技術(shù)中的一種,是目前企業(yè)中使用最多的虛擬化技術(shù)軟件;
- Docker是一款輕量級、高性能的虛擬化技術(shù),是目前互聯(lián)網(wǎng)使用最多的虛擬化技術(shù)
- Docker虛擬化 是一個(gè)開源的應(yīng)用容器引擎,
- Docker容器是完全使用沙箱機(jī)制,相互之間不會有任何接口,幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運(yùn)行
- Docker的基礎(chǔ)是 Linux 容器(LXC)等技術(shù)。
5、Docker虛擬化技術(shù)特點(diǎn):
- 輕量級、高性能、安全、穩(wěn)定、管理方便;
- Docker虛擬化技術(shù)的產(chǎn)物就是Docker容器;
- 那么Docker容器與KVM的虛擬機(jī)有什么不同?
- Docker容器也被稱為輕量級的虛擬機(jī),
- 比傳統(tǒng)的KVM虛擬機(jī)更加輕巧
- 容器共享宿主機(jī)的資源、內(nèi)核
- 不管是什么的虛擬化技術(shù)都會共享宿主機(jī)的資源;
6、Docker架構(gòu):
- Server(硬件資源)–>Host OS(宿主機(jī)操作系統(tǒng))–>VMware(虛擬軟件)–>APP(應(yīng)用服務(wù))
- 效率高,啟動快
- 輕量級虛擬化:
- 開源免費(fèi)
- Docker虛擬化技術(shù)是在硬件的基礎(chǔ)上,基于現(xiàn)有的操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),直接虛擬生成Docker容器,
- Docker容器上部署相關(guān)的APP應(yīng)用(Apache、MYSQL、PHP、JAVA)。
- Docker虛擬化的優(yōu)點(diǎn):
- 操作啟動快
- 輕量級虛擬化
- 開源免費(fèi)
- 前景好,云支持多
- Docker虛擬化的缺點(diǎn)
- 難度高、技術(shù)資料不多;
- Go語言還沒有完全成熟;
傳統(tǒng)虛擬化架構(gòu):
- Server(硬件資源)–>Host OS(宿主機(jī)操作系統(tǒng))–>VMware(虛擬軟件)–>Guest OS(虛擬機(jī)系統(tǒng))–>APP(應(yīng)用服務(wù))
- 完全虛擬化技術(shù)
- 半虛擬化技術(shù)
- KVM、XEN、ESXI傳統(tǒng)虛擬化(完全、半虛擬化)是在硬件的基礎(chǔ)上,
- 基于現(xiàn)有的操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,但是不能復(fù)用本地主機(jī)的操作系統(tǒng)
- 而是必須虛擬出自己的Guest OS系統(tǒng),
- 然后在Guest OS系統(tǒng)上部署相關(guān)的APP應(yīng)用(Apache、MYSQL、PHP、JAVA)。
什么是LXC技術(shù)?
- LXC(Linux Container)linux容器概念
- LXC是基于是內(nèi)核級的虛擬化技術(shù)
7、Docker 虛擬化技術(shù)結(jié)構(gòu):
- LXC(Linux Container)+AUFS(Another Union File System)結(jié)構(gòu)組合
- Docker虛擬化技術(shù)是在LXC技術(shù)上進(jìn)一步的封裝提供了一系列完整的功能
- LXC主要負(fù)責(zé)資源管理
- AUFS主要負(fù)責(zé)鏡像管理
- LXC包括Cgroup、NameSpace、Chroot等組件,并通過Cgroup進(jìn)行資源管理。
- Docker、LXC、Cgroup三者的關(guān)系
- Cgroup在最底層落實(shí)資源管理,
- Cgroups又名Control groups,是Linux內(nèi)核提供的一種可以限制、記錄、隔離進(jìn)程組所使用的物理資源(CPU、 Memory、IO、NET)的機(jī)制。
- LXC在cgroup上封裝了一層,
- Linux Container容器技術(shù)可以提供輕量級的虛擬化,以便隔離進(jìn)程和資源
- LXC是建立在CGroup基礎(chǔ)上,可以理解為:LXC = Cgroup+ namespace + Chroot + veth +用戶態(tài)控制腳本
- Docker又在LXC封裝了一層
- Docker容器的文件系統(tǒng)最早是建立在Aufs基礎(chǔ)上的
- Cgroup在最底層落實(shí)資源管理,
Aufs文件系統(tǒng)
- Aufs將掛載到同一虛擬文件系統(tǒng)下的多個(gè)目錄分別設(shè)置成read-only,read-write以及whiteout-able權(quán)限
- read-only:只讀權(quán)限
- read-write以:寫操作
- whiteout-able:
Device Mapper文件系統(tǒng)
- Device Mapper 是 Linux2.6 內(nèi)核中支持邏輯卷管理的通用設(shè)備映射機(jī)制,它為實(shí)現(xiàn)用于存儲資源管理的塊設(shè)備驅(qū)動提供了一個(gè)高度模塊化的內(nèi)核架構(gòu)。
- 內(nèi)核架構(gòu):
- Device Mapper 進(jìn)一步體現(xiàn)了在 Linux 內(nèi)核設(shè)計(jì)中策略和機(jī)制分離的原則,
- 將所有與策略相關(guān)的工作放到用戶空間完成,
- 內(nèi)核中主要提供完成這些策略所需要的機(jī)制。
- Device mapper 用戶空間相關(guān)部分主要負(fù)責(zé)配置具體的策略和控制邏輯,
- 整個(gè)Device Mapper機(jī)制由兩部分組成-內(nèi)核空間的Device mapper 驅(qū)動、用戶空間的Device mapper 庫以及它提供的Dmsetup工具。
OverlayFS文件系統(tǒng)
- OverlayFS是目前使用比較廣泛的層次文件系統(tǒng),是一種類似Aufs的一種堆疊文件系統(tǒng)
- Docker虛擬化Overlay存儲驅(qū)動利用了很多OverlayFS特性來構(gòu)建和管理鏡像與容器的磁盤結(jié)構(gòu)
- 在真實(shí)使用中,OverlayFS代表整個(gè)文件系統(tǒng),而Overlay/Overlay2表示Docker的存儲驅(qū)動
Docker引擎架構(gòu)
- docker引擎是一個(gè)C/S結(jié)構(gòu)的應(yīng)用;
- Docker使用C/S架構(gòu),Client 通過接口與Server進(jìn)程通信實(shí)現(xiàn)容器的構(gòu)建,運(yùn)行和發(fā)布
8、Docker的三大概念:
- Docker鏡像、
- Docker虛擬化最基礎(chǔ)的組件為鏡像
- Docker鏡像是靜止的、只讀的,不能對鏡像進(jìn)行寫操作。
- Docker容器、
- Docker容器是Docker虛擬化的產(chǎn)物
- 基于鏡像運(yùn)行,并且在鏡像最上層添加一層容器層之后的實(shí)體,容器層是可讀、可寫的
- Docker倉庫
- Docker倉庫是用于存放Docker鏡像的地方,
- Docker倉庫分為兩類:
- 公共倉庫(Public)
- 私有倉庫(Private)
Docker鏡像原理:文章來源:http://www.zghlxwxcb.cn/news/detail-452502.html
- Docker鏡像是分層的;有多個(gè)層級組成;每個(gè)層級實(shí)現(xiàn)某個(gè)功能;
- Docker鏡像是分層的,由多個(gè)層級組成
- 編寫Dockerfile和基于容器Commit實(shí)現(xiàn)鏡像制作
- Docker引擎默認(rèn)通過鏡像ID來識別鏡像;
- 每個(gè)鏡像層都是只讀,即使啟動成容器
- Docker容器是一個(gè)或者是多個(gè)運(yùn)行的進(jìn)程,
- 消耗CPU、內(nèi)存的資源
- json文件可以反映運(yùn)行的進(jìn)程;
Docker組件說明文章來源地址http://www.zghlxwxcb.cn/news/detail-452502.html
- Docker Server是一個(gè)常駐進(jìn)程
- REST API 實(shí)現(xiàn)了client和server間的交互協(xié)議
- Docker CLI 實(shí)現(xiàn)容器和鏡像的管理,為用戶提供統(tǒng)一的操作界面;
- Images為容器提供了統(tǒng)一的軟件、文件底層存儲;
- Container是Docker虛擬化的產(chǎn)物,直接作為生產(chǎn)使用;
- Network為Docker容器提供完整網(wǎng)絡(luò)通信;
- Volume為Docker容器提供額外磁盤、文件存儲對象。
到了這里,關(guān)于Docker虛擬化概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!