Docker初探之Windows篇

一、什麼是Docker?

Docker是一個開源的應用容器引擎,可以輕鬆地為任何應用創建一個輕量級、可移植、自給自足的容器。開發者在本地編譯測試通過的容器可以批量地在生產環境中部署,包括虛擬機和其他平台。

我們可以將自己的應用以及依賴的環境一起打包到一個容器中,然後這個容器就可以很容易的放到其他機器上運行。而且非常易於裝載、複製、移除。

以前的部署方式就是每次部署應用的時候都需要在電腦上重複地走一下部署流程,比如下載安裝環境、依賴框架、搭建服務等。但是有了Docker容器技術,我們無需重複的操作,只需要一次打包,處處運行,而且每個容器之間都是隔離的環境,互不影響。

二、虛擬機和Docker對比

 

 

 

在上圖中,容器是一個應用層抽象,用於將程式碼和依賴資源打包在一起。多個容器可以在同一台機器上運行,共享作業系統內核,但各自作為獨立的進程在用戶空間中運行。與虛擬機相比,容器佔用的空間較少,瞬間就能完成啟動。

虛擬機則是一個物理硬體層抽象,用於將一台伺服器變成多態伺服器,管理程式允許多個虛擬機在一台機器上運行,每個虛擬機都包含一個獨立的作業系統、一個或多個應用、必要的二進位文件和資源庫。因此佔用大量空間,啟動也十分緩慢。

 

由於容器所需要的資源要比虛擬機少(虛擬機需要一個完整的系統環境),所以它們易於部署且快速啟動。

 

特性 容器 虛擬機
啟動速度

秒級

幾秒內就可以啟動

分鐘級

有時候需要長達十幾分鐘才能啟動,具體看環境安裝資源大小而定

存儲空間佔用 一般為MB為單位 需要的空間至少G單位的空間
性能 接近原生,基本沒有其他的消耗 作業系統會佔用較多的資源
系統支援量 一台普通的伺服器可以支援上千個容器 一般最多支援幾十個虛擬機,而且看電腦配置而定

 

三、拋開虛擬機面向Docker容器

現在大應用不斷增加,容器化是技術發的必然趨勢,容器技術也會不斷地進化,所以我們要把容器技術用起來,就從Docker開始!

有很多小夥伴都覺得用這個有一定地門檻,安裝太麻煩,當然,這也是誤區。

有些人認為用Docker很麻煩,只有大公司用,或者學習這個成本很高,認為對現有系統、架構改造太大,成本太高等等,這些都是誤區。

四、Docker的三個基本概念

1、鏡像

  Docker鏡像是一個特殊的文件系統,除了提供容器運行時所需要的程式、庫、資源、配置等文件外,還包含了一些為運行時準備的配置參數。鏡像不包含任何動態數據,其內容在構建後也不會改變。

我們可以簡單的理解,鏡像就像是一個什麼環境、依賴資源、文件和你的應用程式都跟你打包的一個文件系統。就類似於作業系統一樣,作業系統也是由C盤下的Windows文件夾和其他系統文件組成的一樣,要運行作業系統,肯定是需要這些資源、文件

、依賴都存在,你可以理解為這一整套文件系統就是鏡像。

2、容器

  容器和鏡像的關係就像是面向對象程式中的實例和類一樣,類是靜態的,實例是通過類運行起來才有的。運行起來的程式才有進程。

  容器你可以理解為運行起來的鏡像,比如,一套系統程式也是由很多個文件、資源、依賴組成,那麼把它完整的一套說法類似叫鏡像。如果系統程式沒有運行起來,它其實也是放在硬碟上的系統文件而已。而容器,就是表示把系統程式運行起來,相當在電腦里開一個進程,運行起來的系統程式我們稱之為容器。

3、倉庫

  鏡像我們構建好後,可以很容易的在當前的作業系統上運行,但是如果需要在其他伺服器上使用這個鏡像,我們就需要一個集中存放、分發鏡像的一個服務中心。

       就類似於我們開發了一套程式,文件、依賴、資源都打包在一起了,這樣很快的可以在本機運行,但是你要用,我是不是需要上傳到一個軟體管理服務網站,你下載就行了,對吧。如果另外一個人也有一套程式給你用,那麼那個人也可以先上傳到軟體管理服務網站,然後你下載,那麼這個軟體管理服務網站,在Docker里叫做倉庫服務中心,當然,上面舉的例子不一定符合Docker概念,但可以作為理解倉庫意思的參考,Docker里的倉庫是放鏡像的,與我們傳統的還是有區別的。

  每個倉庫可以包含多個標籤,每個標籤對應一個鏡像,通常一個倉庫包含同一個軟體不同版本的鏡像,而根據標籤來區分軟體的各個不同版本。如果我們要使用倉庫里的鏡像,一般都會指定一個標籤用於指定軟體版本,如果不指定標籤則用最新的一個版本。

五、下載安裝和運行Docker(這裡用Docker提供的Docker for Windows為例,Docker ToolBox適用於Windows 10以下的系統,我本人是Window 10)

Docker 是一個應用容器引擎,肯定需要安裝才能使用。

Docker可以運行在Linux上,也可以運行在Windows上,在這裡,目前以Windows環境為例,後面再說Linux上的Docker使用,一般在Linux上運用Docker居多。

要在Windows上運行Docker,需要滿足下面幾個條件:

1、Windows 10 64位:Pro、Enterprise或Education (Build 14393或更高版本)

2、在BIOS中啟用虛擬化。一般默認是啟用的

下載安裝後需要重啟電腦,如果運行遇到報錯可以根據錯誤提示來進行修改環境,常見的如下:

啟用Hyper-V

 

下載地址://pan.baidu.com/s/12XeL11JHxsCVvOCxM3r5gA 提取碼: n3gw  (官方地址有點慢,這裡就不放地址了,直接進入Docker官網即可)

安裝成功後,桌面會有一個Docker圖標:

 

 

 

 

 雙擊運行後,右下角會多出一個託管圖標:

 

 

 右鍵:

 

 

 點擊Settings進入設置面板:

 

 

 

介面左下角有個綠色圖標+Docker running,表示Docker已經正常運行起來了。 

在後面的使用中,我們會用到很多不同的鏡像,但是由於Docker 提供的鏡像倉庫中心是國外地址,下載鏡像對於我們來說就很慢,我們可以通過修改Docker配置文件或圖形化操作來添加了個鏡像加速配置。我們中國的有很多大廠提供了容器加速地址,比如阿里雲、騰訊等。

在這裡我用阿里雲的://mtlxrshz.mirror.aliyuncs.com

如果是Windows 10的用戶則直接以下操作:

 

 

 

修改後重啟Docker服務即可。

重啟後我們可以小試一下:

打開Windows PowerShell 工具

 

 

打開後,輸出命令 docker Image ls 表示輸出當前已經存在的鏡像列表如:

 

 

這是我本機的,我上面裝載了rabbitmq、mysql和redis常用的服務工具鏡像。

好了,後續我就接著為大家介紹Docker的常用命令、如何拉取鏡像和運行容器等。

Tags: