docker是dotCloud公司的產(chǎn)品;docker最初是dotCloud公司創(chuàng)始人“Solomon Hykes”在法國(guó)期間發(fā)起的一個(gè)公司內(nèi)部項(xiàng)目,它是基于dotCloud公司多年云服務(wù)技術(shù)的一次革新,并于2013年3月以“Apache 2.0”授權(quán)協(xié)議開(kāi)源,主要項(xiàng)目代碼在GitHub上進(jìn)行維護(hù)。

本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。
docker是哪個(gè)公司的產(chǎn)品
docker 是什么
Docker 最初是 dotCloud 公司創(chuàng)始人 Solomon Hykes 在法國(guó)期間發(fā)起的一個(gè)公司內(nèi)部項(xiàng)目,它是基于 dotCloud 公司多年云服務(wù)技術(shù)的一次革新,并于 2013 年 3 月以 Apache 2.0 授權(quán)協(xié)議開(kāi)源,主要項(xiàng)目代碼在 GitHub 上進(jìn)行維護(hù)。Docker 項(xiàng)目后來(lái)還加入了 Linux 基金會(huì),并成立推動(dòng) 開(kāi)放容器聯(lián)盟(OCI)。
Docker 自開(kāi)源后受到廣泛的關(guān)注和討論,至今其 GitHub 項(xiàng)目已經(jīng)超過(guò) 4 萬(wàn) 6 千個(gè)星標(biāo)和一萬(wàn)多個(gè) fork。甚至由于 Docker 項(xiàng)目的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。Docker 最初是在 Ubuntu 12.04 上開(kāi)發(fā)實(shí)現(xiàn)的;Red Hat 則從 RHEL 6.5 開(kāi)始對(duì) Docker 進(jìn)行支持;Google 也在其 PaaS 產(chǎn)品中廣泛應(yīng)用 Docker。
Docker 使用 Google 公司推出的 Go 語(yǔ)言 進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及AUFS 類的 Union FS 等技術(shù),對(duì)進(jìn)程進(jìn)行封裝隔離,屬于 操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。最初實(shí)現(xiàn)是基于 LXC,從 0.7 版本以后開(kāi)始去除 LXC,轉(zhuǎn)而使用自行開(kāi)發(fā)的 libcontainer,從 1.11 開(kāi)始,則進(jìn)一步演進(jìn)為使用 runC 和 containerd。
Docker 在容器的基礎(chǔ)上,進(jìn)行了進(jìn)一步的封裝,從文件系統(tǒng)、網(wǎng)絡(luò)互聯(lián)到進(jìn)程隔離等等,極大的簡(jiǎn)化了容器的創(chuàng)建和維護(hù)。使得 Docker 技術(shù)比虛擬機(jī)技術(shù)更為輕便、快捷。
下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處。傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后,在其上運(yùn)行一個(gè)完整操作系統(tǒng),在該系統(tǒng)上再運(yùn)行所需應(yīng)用進(jìn)程;而容器內(nèi)的應(yīng)用進(jìn)程直接運(yùn)行于宿主的內(nèi)核,容器內(nèi)沒(méi)有自己的內(nèi)核,而且也沒(méi)有進(jìn)行硬件虛擬。因此容器要比傳統(tǒng)虛擬機(jī)更為輕便。

從上圖可以看出:
- docker容器是一個(gè)應(yīng)用層抽象,用于將代碼和依賴資源打包在一起。 多個(gè)容器可以在同一臺(tái)機(jī)器上運(yùn)行,共享操作系統(tǒng)內(nèi)核,但各自作為獨(dú)立的進(jìn)程在用戶空間中運(yùn)行 。與虛擬機(jī)相比, 容器占用的空間較少(容器鏡像大小通常只有幾十兆),瞬間就能完成啟動(dòng)
- 虛擬機(jī) (VM) 是一個(gè)物理硬件層抽象,用于將一臺(tái)服務(wù)器變成多臺(tái)服務(wù)器。 管理程序允許多個(gè) VM 在一臺(tái)機(jī)器上運(yùn)行。每個(gè)VM都包含一整套操作系統(tǒng)、一個(gè)或多個(gè)應(yīng)用、必要的二進(jìn)制文件和庫(kù)資源,因此 占用大量空間 。而且 VM 啟動(dòng)也十分緩慢
拿docker 官網(wǎng)的標(biāo)題圖片,作為這一部分結(jié)束,作為一個(gè)總結(jié):Build, Manage and Secure Your Apps Anywhere. Your Way.

推薦學(xué)習(xí):《docker視頻教程》
站長(zhǎng)資訊網(wǎng)