Docker最全教程——從理論到實戰(五)

雪雁發表於2018-12-06

往期內容連結

Docker最全教程——從理論到實戰(一)

Docker最全教程——從理論到實戰(二)

Docker最全教程——從理論到實戰(三)

Docker最全教程——從理論到實戰(四)

 

本篇教程持續編寫了3個星期左右並且一直在完善、補充具體的細節和實踐,預計全部完成需要1到2個月的時間。由於編寫的過程中極其費時,並且還需要配合做一些實踐(有些實踐存在一些坑,而且極其費時費事)。因此目前產出的速度已經跟不上釋出的速度了,後續的釋出節奏會放慢,請大家多多理解和多多包含。

在這個過程中,我們希望能夠多多交流,多多分享。根據目前和大家的交流,筆者針對大家的情況進行了一些修改和補充,希望對大家有所幫助。另外,對於熟悉容器服務的你,也可以參與進來,讓我們一起打造這個系列教程,以幫助更多的人。同時,我們也希望得到大家的支援,你們的支援是我們前進的最大動力!

 

執行 Docker 應用程式

如果應用程式只有一個容器,則可通過將其部署到 Docker 主機(虛擬機器或物理伺服器)來執行該程式。 但如果應用程式包含多項服務,則可使用單個 CLI 命令 (docker-compose up) 或使用 Visual Studio(會在其中使用該命令)將其部署為組合應用程式。

單個應用,就如我們上面的demo :

docker run --name aspnetcore_sample --rm -it -p 8000:80 microsoft/dotnet-samples:aspnetapp

應用程式啟動後,使用瀏覽器開啟http://localhost:8000,即可看到以下介面:

但是如Magicodes.Admin框架所示,有後臺介面、後臺前端應用、前端介面、小程式端、APP等等,那麼我們可以通過上面配置的docker-compose檔案來部署為組合應用程式。執行起來很簡單,只需要執行以下命令:

docker-compose up

執行之後,我們可以看到:

Magicodes.Admin提供了本地編譯、打包、構建映象以及執行等整套指令碼,在通常情況,我們僅需一鍵執行指令碼即可。

指令碼會自動完成對後臺服務和前端應用的構建以及執行。在上一節中,我們說到,Visual Studio對這塊已經完成了相關的支援,如果是使用Visual Studio的開發者,僅需按下F5即可執行。

 

測試

容器正常執行了,我們可以讓測試人員來訪問我們的服務來進行相關的功能測試和可用性測試。當然,我們也可以編寫自定義指令碼進行自動化測試,就如前面章節中Docker-compose常用場景中提到的自動化測試環境:

 

部署或繼續開發

開發完成後,我們就需要部署我們的應用,並且繼續專案迭代。在部署之前,我們需要推送我們的映象,比如使用docker push命令,我們可以將映象推送到docker的官方映象庫,也可以推送到各大雲自己的映象庫,然後再通過docker pull命令拉取映象進行部署。同時,也可以使用一些CI(持續整合)工具來完成自動化的邊開發邊部署的工作。CI這塊,我們接下來會介紹基於Azure DevOps、Tencent hub、Jenkins以及TeamCity等服務或工具來完成CI。在本節,我們繼續瞭解映象推送的語法:

docker push {映象名稱}:{映象版本}

在推送之前,我們需要登入到一個映象倉庫,如果未指定映象倉庫地址,預設為官方倉庫 Docker Hub。相關語法如下所示:

docker login --username {使用者名稱} --password {密碼} {倉庫地址}

推送成功之後,如下所示:

關於部署和託管這塊,接下來我們以騰訊雲的容器服務進行舉例。

為什麼是騰訊雲,因為他家的創業服務支援活動贊助了我們很多代金券,基本上接近免費,因此從成本考慮,我們首選騰訊雲(騰訊雲:瞎說什麼大實話)。

部署完成之後,我們可以繼續產品或專案的迭代。在整個開發工作流中,我們可以顯著的看到,由於Docker的出現,在一定層次上改變了我們的工作和交付流程,並且可以大大的簡化CI、CD流程。或者就從構建上來說,配置dockerfile來完成構建,比傳統的方式來的迅猛多了。而配置docker-compose.yml一次啟動多個服務,簡直是分散式架構、微服務架構開發和測試人員的福音。

至此,整個Docker持續開發工作流程就到此結束,在後面的篇幅,我們側重於從實戰的角度來講解這些內容。

 

使用Kitematic來管理docker容器

這裡,我們先插播一個內容。本節,我們先來介紹下Kitematic。

Kitematic是一個開源專案,旨在簡化在Mac或Windows PC上使用Docker的過程。Kitematic自動化Docker安裝和設定過程,並提供直觀的圖形使用者介面(GUI)來執行Docker容器。

因此,我們推薦大家使用Kitematic工具來檢視和管理自己的容器服務,如果尚未安裝此工具,大家可以通過以下方式進行安裝:

  • 從Docker for Mac或Docker for Windows選單中選擇Kitematic,開始使用Kitematic安裝。如下圖所示:

 

注意:這裡我們不推薦使用Docker Toolbox,原因我們在前面已經說過,Docker Toolbox僅支援老版本的作業系統,屬於過時的工具。

安裝完成之後,啟動後可以看到如下介面:

也可以點選某個服務來檢視詳情、相關設定、日誌等:

另外,Kitematic 整合了Docker Hub,允許通過搜尋、拉取任何需要的映象,並在上面部署應用。它同時也能很好地切換到命令列模式。目前,它包括了自動對映埠、視覺化更改環境變數、配置卷、流式日誌以及其它功能。

注意:如果安裝完成後如果無法開啟,請將Kitematic安裝後的檔案遷移到Docker指定目錄【C:\Program Files\Docker\Kitematic】。

 

kitematic 是開源的,如果大家有興趣,可以訪問其開源庫下載全部原始碼進行研究:

https://github.com/docker/kitematic

相關文章