docker

docker
what is docker
- Docker是基于Go語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)的,是一種對(duì)進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)
- 由于隔離的進(jìn)程獨(dú)立于宿主和其它隔離的進(jìn)程,Docker也因此被稱為容器
The discrimination between virtual machines and docker
- 傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件,在其運(yùn)行一個(gè)完整的操作系統(tǒng),然后在這個(gè)系統(tǒng)運(yùn)行所需的應(yīng)用進(jìn)程
- Docker的應(yīng)用進(jìn)程是直接運(yùn)行為宿主的內(nèi)核上,容器內(nèi)沒(méi)有自己的內(nèi)核,更沒(méi)有硬件虛擬
-
Docker容器比傳統(tǒng)的虛擬機(jī)更為輕便
Virtual_Machines
docker

總結(jié)對(duì)比
The advantage of Docker
- 容器不需要硬件模擬或者運(yùn)行操作系統(tǒng)等額外開(kāi)外,故相比與傳統(tǒng)的虛擬機(jī)技術(shù),一個(gè)相同配置的主機(jī),可以運(yùn)行更多數(shù)量的容器
- 容器直接運(yùn)行于宿主內(nèi)核,無(wú)需啟動(dòng)完整的操作系統(tǒng),因此可以做到毫秒級(jí)的啟動(dòng)
- 容器可以提供一致的開(kāi)發(fā)環(huán)境
- 使用容器可以定制鏡像來(lái)實(shí)現(xiàn)持續(xù)集成,交付和部署
Docker Image
- Docker鏡像(Image),就相當(dāng)于是一個(gè)root文件系統(tǒng)
- 鏡像使用的是分層存儲(chǔ)
例如:官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu 16.04 最小系統(tǒng)的 root 文件系統(tǒng)
Docker Container
- 鏡像(Image)和容器(Container)的關(guān)系,就相當(dāng)于面向?qū)ο蟪绦蛟O(shè)計(jì)的類和實(shí)例一樣
- 鏡像是靜態(tài)的定義
- 容器是鏡像運(yùn)行時(shí)的實(shí)體
- 容器可以被創(chuàng)建,啟動(dòng),停止,刪除,暫停等等
- 容器是一個(gè)運(yùn)行在隔離環(huán)境下的進(jìn)程,與其它進(jìn)程不同的是,容器可以擁有只屬于自己的root文件系統(tǒng),自己的網(wǎng)絡(luò)配置,自己的進(jìn)程空間以及自己的ID空間等等
- 如同鏡像一樣,容器也是使用分層存儲(chǔ),每一個(gè)容器運(yùn)行時(shí),以鏡像為基礎(chǔ)層,在其上創(chuàng)建一個(gè)當(dāng)前容器的存儲(chǔ)層,可稱為容器運(yùn)行時(shí)而準(zhǔn)備的存儲(chǔ)層,又稱容器存儲(chǔ)層
- 容器消亡時(shí),容器存儲(chǔ)層也隨之消亡,故,容器不應(yīng)向存儲(chǔ)層寫(xiě)入任何數(shù)據(jù)需保持無(wú)狀態(tài)化
- 所以的文件寫(xiě)入操作,都應(yīng)該使用數(shù)據(jù)卷,或者綁定宿主目錄,在這些位置的讀寫(xiě)會(huì)跳過(guò)容器存儲(chǔ)層,直接對(duì)宿主或者網(wǎng)絡(luò)存儲(chǔ)發(fā)生讀寫(xiě)
- 容器消亡,數(shù)據(jù)卷不會(huì)消亡,使用數(shù)據(jù)卷后,容器刪除或者重新運(yùn)行之后,數(shù)據(jù)不會(huì)丟失
Docker Register
- 一個(gè) Docker Registry 中可以包含多個(gè)倉(cāng)庫(kù)(Repository)
- 每個(gè)倉(cāng)庫(kù)可以包含多個(gè)標(biāo)簽(Tag),每個(gè)標(biāo)簽對(duì)應(yīng)一個(gè)鏡像,如版本標(biāo)簽,如果忽略標(biāo)簽,則使用latest作為默認(rèn)標(biāo)簽
- Docker Hub
- 阿里云加速器

