Docker是計(jì)算虛擬化的一種方式,和使用虛擬機(jī)進(jìn)行虛擬化是類似的。由于近幾年Docker技術(shù)的流行和發(fā)展。所以單獨(dú)介紹一下Docker。首先先回答下面一個(gè)問(wèn)題。
1.Docker會(huì)替代調(diào)虛機(jī)嗎?
答案:不會(huì)。
原因:是有些遺留應(yīng)用是運(yùn)行在windows系統(tǒng)上的。有些應(yīng)用可以直接遷移到虛擬上,但是不能直接在容器中運(yùn)行?,F(xiàn)在得趨勢(shì)是虛擬機(jī)和容器同時(shí)發(fā)展。容器的優(yōu)點(diǎn)是敏捷性和高性能。而虛擬機(jī)的優(yōu)點(diǎn)是更強(qiáng)的隔離性和運(yùn)維的簡(jiǎn)單性。 Docker不但不會(huì)替代虛擬機(jī),這兩種技術(shù)經(jīng)常還結(jié)合起來(lái)應(yīng)用。很多的公有云都是先使用虛擬機(jī)技術(shù),然后在虛擬機(jī)上運(yùn)行容器。

JTTI.CC
2.什么是Docker容器?
一句話描述容器: 容器是一個(gè)特殊的Linux進(jìn)程。
只不過(guò)Docker對(duì)這個(gè)進(jìn)程進(jìn)行了特殊的隔離和限制,使得這個(gè)進(jìn)程能夠?qū)崿F(xiàn)"應(yīng)用容器"的效果。應(yīng)用容器要達(dá)到的效果就是 :
1:給應(yīng)用的應(yīng)用提供一個(gè)單獨(dú)的空間,其實(shí)就是一個(gè)單獨(dú)的進(jìn)程;
2:容器之間互相不影響,資源隔離;
3:容器可以在任何環(huán)境上運(yùn)行。
為了達(dá)到上述的效果,Docker對(duì)這個(gè)進(jìn)程進(jìn)行了如下3個(gè)方面進(jìn)行了隔離和控制:
2.1 . 通過(guò)Namespace對(duì)進(jìn)程進(jìn)行隔離:
Namespace是Linux內(nèi)核提供的一個(gè)隔離系統(tǒng)資源的方法,它實(shí)現(xiàn)的功能就是將Linux的資源以Namespace為單位進(jìn)行隔離。
2.2 . 通過(guò)CGroup進(jìn)行資源限制:
Namespace只是限制了進(jìn)程對(duì)于OS的視圖,但是從OS的視角來(lái)看,這些被限制了的進(jìn)程和普通的進(jìn)程并沒(méi)有區(qū)別。不管進(jìn)程是否被限制,他們使用的都是同一個(gè)宿主機(jī)的OS內(nèi)核。容器進(jìn)程雖然被隔離了,但是它仍然可以不受限制的任意使用宿主機(jī)OS的資源。這顯然不是一個(gè)“沙盒”應(yīng)該表現(xiàn)出來(lái)的行為。所以必須對(duì)容器進(jìn)程能夠使用的系統(tǒng)資源進(jìn)行限制,這就是Linux Control Group機(jī)制(簡(jiǎn)稱CGroup)。CGroup主要作用就是限制進(jìn)程能夠使用的OS資源上限,比如CPU,內(nèi)存,磁盤(pán),網(wǎng)絡(luò)帶寬等。
2.3 . 通過(guò)容器鏡像(或者叫rootfs)為容器提供單獨(dú)的隔離的文件系統(tǒng):
容器進(jìn)程的目的是擁有自己的獨(dú)立的文件系統(tǒng),自己的進(jìn)程在運(yùn)行的時(shí)候可以在這個(gè)獨(dú)立的文件系統(tǒng)中運(yùn)行。這就需要用到上述的Mount Namespace,需要注意的是Mount Namespace對(duì)容器進(jìn)程視圖的改變需要伴隨著掛在操作才能生效。所以說(shuō)容器進(jìn)程在啟動(dòng)之前需要做的事情就是掛載一個(gè)完整的操作系統(tǒng)的目錄即可。而在Linux中正好有一個(gè)現(xiàn)成的命令chroot可以完成這個(gè)動(dòng)作。
3.什么是容器鏡像?
正如上述所言,這個(gè)掛載在容器根目錄上的用來(lái)為容器進(jìn)程提供隔離后執(zhí)行環(huán)境的文件系統(tǒng),就是所謂的“容器鏡像”。它還有一個(gè)更為專業(yè)的名字,叫作:rootfs(根文件系統(tǒng))。用一句話說(shuō):容器鏡像就是一個(gè)文件系統(tǒng)。
審核編輯 黃宇
-
Docker
+關(guān)注
關(guān)注
0文章
526瀏覽量
13988
發(fā)布評(píng)論請(qǐng)先 登錄
跨阻放大器的虛短虛斷如何分析以及電流的流向?
干貨分享 | RK3588 Ubuntu系統(tǒng)Docker容器使用指南
docker無(wú)法啟用怎么解決?
如何使用Docker部署大模型
什么是運(yùn)放的虛短和虛斷
Docker Compose的常用命令
Docker常用命令大全
連接器焊接后引腳虛焊要怎么處理?
【技術(shù)案例】Android in Docker
基于Docker鏡像逆向生成Dockerfile
TECS OpenStack資源池虛機(jī)殘留導(dǎo)致網(wǎng)元異常的問(wèn)題處理
云服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 NGINX

Jtti:Docker會(huì)替代調(diào)虛機(jī)嗎
評(píng)論