Docker之路(一):Docker簡介

一、Doker是什麼

Docker官網: https://www.docker.com/

在這裏插入圖片描述

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。

Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。

容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

Docker 從 17.03 版本之後分爲 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了。

二、Docker架構原理

在這裏插入圖片描述

Docker三要素,鏡像,容器,倉庫
1.鏡像
Docker 鏡像(Image)就是一個只讀的模板,它可以是一個可運行軟件(tomcat,mysql),也可以是一個系統(centos)。鏡像可以用來創建 Docker 容器,一個鏡像可以創建很多容器。

2.容器
Docker 利用容器(Container)獨立運行的一個或一組應用。容器是用鏡像創建的運行實例。它可以被啓動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個簡易版的 Linux 環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序。容器的定義和鏡像幾乎一模一樣,也是一堆層的統一視角,唯一區別在於容器的最上面那一層是可讀可寫的。

3.倉庫
倉庫(Repository)是集中存放鏡像文件的場所,類似GitHub存放項目代碼一樣,只不過Docker Hub是由來存鏡像(image)的。倉庫(Repository)和倉庫註冊服務器(Registry)是有區別的。倉庫註冊服務器上往往存放着多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標籤(tag,類似版本號)。
倉庫分爲公開倉庫(Public)和私有倉庫(Private)兩種形式。
最大的公開倉庫是 Docker Hub(https://hub.docker.com/),存放了數量龐大的鏡像供用戶下載。國內的公開倉庫包括阿里雲 、網易雲 等。

容器與鏡像的關係類似於面向對象編程中的對象與類

Docker 面向對象
鏡像
容器 對象

三、Docker有什麼用

1.簡化環境,提高開發生命週期效率

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數週的 任務,在Docker容器的處理下,只需要數秒就能完成。

2.節省開支

一方面,雲計算時代到來,使開發者不必爲了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

四、Docker容器與虛擬機的區別

Docker是一種輕量級的虛擬化技術,比傳統的虛擬機性能更好。

下圖是虛擬機的體系結構:

在這裏插入圖片描述

server - 表示真實電腦。

Host OS - 真實電腦的操作系統,例如:Windows,Linux

Hypervisor - 虛擬機平臺,模擬硬件,如VMWare,VirtualBox

Guest OS - 虛擬機平臺上安裝的操作系統,例如CentOS Linux

App - 虛擬機操作系統上的應用,例如nginx

下圖是Docker的體系結構:
在這裏插入圖片描述
server - 表示真實電腦。

Host OS - 真實電腦的操作系統,例如:Windows,Linux

Docker Engine - 新一代虛擬化技術,不需要包含單獨的操作系統。

App - 所有的應用程序現在都作爲Docker容器運行。

這種體系結構的明顯優勢是,不需要爲虛擬機操作系統提供硬件模擬。所有應用程序都作爲Docker容器工作,性能更好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章