docker是dotCloud公司的產(chǎn)品;docker最初是dotCloud公司創(chuàng)始人“Solomon Hykes”在法國期間發(fā)起的一個公司內(nèi)部項目,它是基于dotCloud公司多年云服務技術的一次革新,并于2013年3月以“Apache 2.0”授權協(xié)議開源,主要項目代碼在GitHub上進行維護。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。
docker是哪個公司的產(chǎn)品
docker 是什么
Docker 最初是 dotCloud 公司創(chuàng)始人 Solomon Hykes 在法國期間發(fā)起的一個公司內(nèi)部項目,它是基于 dotCloud 公司多年云服務技術的一次革新,并于 2013 年 3 月以 Apache 2.0 授權協(xié)議開源,主要項目代碼在 GitHub 上進行維護。Docker 項目后來還加入了 Linux 基金會,并成立推動 開放容器聯(lián)盟(OCI)。
Docker 自開源后受到廣泛的關注和討論,至今其 GitHub 項目已經(jīng)超過 4 萬 6 千個星標和一萬多個 fork。甚至由于 Docker 項目的火爆,在 2013 年底,dotCloud 公司決定改名為 Docker。Docker 最初是在 Ubuntu 12.04 上開發(fā)實現(xiàn)的;Red Hat 則從 RHEL 6.5 開始對 Docker 進行支持;Google 也在其 PaaS 產(chǎn)品中廣泛應用 Docker。
Docker 使用 Google 公司推出的 Go 語言 進行開發(fā)實現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及AUFS 類的 Union FS 等技術,對進程進行封裝隔離,屬于 操作系統(tǒng)層面的虛擬化技術。由于隔離的進程獨立于宿主和其它的隔離的進程,因此也稱其為容器。最初實現(xiàn)是基于 LXC,從 0.7 版本以后開始去除 LXC,轉而使用自行開發(fā)的 libcontainer,從 1.11 開始,則進一步演進為使用 runC 和 containerd。
Docker 在容器的基礎上,進行了進一步的封裝,從文件系統(tǒng)、網(wǎng)絡互聯(lián)到進程隔離等等,極大的簡化了容器的創(chuàng)建和維護。使得 Docker 技術比虛擬機技術更為輕便、快捷。
下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處。傳統(tǒng)虛擬機技術是虛擬出一套硬件后,在其上運行一個完整操作系統(tǒng),在該系統(tǒng)上再運行所需應用進程;而容器內(nèi)的應用進程直接運行于宿主的內(nèi)核,容器內(nèi)沒有自己的內(nèi)核,而且也沒有進行硬件虛擬。因此容器要比傳統(tǒng)虛擬機更為輕便。
從上圖可以看出:
- docker容器是一個應用層抽象,用于將代碼和依賴資源打包在一起。 多個容器可以在同一臺機器上運行,共享操作系統(tǒng)內(nèi)核,但各自作為獨立的進程在用戶空間中運行 。與虛擬機相比, 容器占用的空間較少(容器鏡像大小通常只有幾十兆),瞬間就能完成啟動
- 虛擬機 (VM) 是一個物理硬件層抽象,用于將一臺服務器變成多臺服務器。 管理程序允許多個 VM 在一臺機器上運行。每個VM都包含一整套操作系統(tǒng)、一個或多個應用、必要的二進制文件和庫資源,因此 占用大量空間 。而且 VM 啟動也十分緩慢
拿docker 官網(wǎng)的標題圖片,作為這一部分結束,作為一個總結:Build, Manage and Secure Your Apps Anywhere. Your Way.

推薦學習:《docker視頻教程》