Docker入門 .Net Core 使用Docker全程記錄


https://www.cnblogs.com/flame7/p/9210986.html

Docker入門 第一課 --.Net Core 使用Docker全程記錄

 

微服務架構無疑是當前最火熱的開發架構,而Docker作為微服務架構的首選工具,是我們必須要了解掌握的。

我通過一天的時間,網上查文檔,了解基礎概念,安裝Docker,試驗Docker命令,通過Docker,成功部署運行Asp.NET core示例程序,算是基本入門。

這篇文章是自己總結的Docker入門篇,力求簡潔,快速入門,以最短的時間看到學習成果,為深入學習Docker做基礎。

 

學習前提:不要畏懼 

面對未知,人們心里往往會產生恐懼,這是人與生俱來的,所以,我們在進入新的領域之前,首先要克服的是自己的畏難心理。不要因為困難,看幾眼就放棄,那樣你永遠學不會。 

面對新的未知領域,我們要把它當成一座燈塔,讓它指引我們前進的方向。

 

第一:了解幾個概念 

鏡像(Image):相信大家看到這個詞,都明白什么意思,我們可以把它理解為操作系統的安裝盤,Ghost鏡像。我給它個定義,就叫:Docker基礎運行環境副本。 

容器(Container):運行中的Docker實例,稱為容器。也就是一個鏡像(Image)的運行時狀態。 

鏡像倉庫(Repository):Docker為開發者提供了面向各種環境的已經打包好的鏡像,這些鏡像構成了一個鏡像倉庫。開發者只需找到自己需要的Docker鏡像,下載到本地,添加自己的應用上去,運行即可,某些工具類的鏡像,可無需修改,直接運行。

Docker 主機(Host):運行着Docker容器的計算機或虛擬機,用於執行Docker的守護進程。 

Docker客戶端(Client):是與Docker主機守護進程進行通信的工具,如:Docker控制台。 

 

第二:安裝Docker

不同操作系統按照方式不同,以Win7系統為例,需要利用 docker toolbox 來安裝,可以使用阿里雲的鏡像來下載。

下載地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

安裝完成之后,在桌面找到三個啟動圖標:Oracle VM VirtualBox,Kitematic(Alpha),Docker Quickstart …。

安裝完成之后,建議重啟一下計算機。

  

Oracle VM VirtualBox :是一個虛擬機程序。Docker是運行在Linux環境下的,要想在Windows下運行,必須借助虛擬機。感興趣的話可以留着以后研究。

kitematic(alpha):是docker推出的GUI工具,可以更簡便地操作Docker,非常適合windows用戶使用習慣,推薦大家試試。這個alpha表示預覽版吧,可能功能還不完善。

Docker Quickstart Terminal:是Docker控制台啟動程序,雙擊圖標啟動Docker。

如果一切正常的話,可以看到以下界面。

  

如果啟動過程中出現下面錯誤,Looks like something went wrong in step 'Looking for vboxmanage.exe'…

意思是沒有找到虛擬機啟動程序,需要設置VirtualBox的環境變量,系統環境變量中增加VBOX_MSI_INSTALL_PATHVBOX_INSTALL_PATH 值都為C:\Program Files\Oracle\VirtualBox\ ,即VirtualBox的安裝路徑,注意后面的\ 不能少。環境變量設置完成之后,可嘗試重新啟動。

 

  

第三:熟悉幾個命令 

我建議實際工作中使用圖形界面 kitematic,真的既簡單又實用,但Docker命令還是要學習的,最重要的是,使用命令行操作顯得更酷更專業。

docker 命令都是以docker開頭,下面介紹幾個簡單,常用的命令。僅作基礎介紹,具體參數用法可后期詳細學習 。

docker pull:從鏡像倉庫中拉取鏡像 。

docker run:通過鏡像創建一個新的容器,並運行。需要注意的是,如果本地沒有指定的鏡像,會直接去鏡像庫下載,一定要保證拼寫正確。 

docker stop:停止一個容器 。

docker start:啟動一個容器 。

docker restart:重啟一個容器 。

docker ps:列出當前運行的容器機器狀態 。

docker images 或 docker image ls:列出本地鏡像。

docker build:使用Dockerfile創建自己的鏡像。

  

第四:操作演示,從hello world開始

你可以登錄Docker官方鏡像倉庫,選擇自己感興趣的鏡像進行試驗,這里我們選擇最簡單的 hello-world。

Docker官方鏡像倉庫地址:https://hub.docker.com 

 

拉取(下載)鏡像,在docker控制台界面,輸入命令:docker pull hello-world

鏡像很小,下載很快完成,然后查看一下本地鏡像,輸入命令:docker images

不出問題的話,應該可以看到hello-world的鏡像文件,運行鏡像,輸入命令:docker run hello-world

然后可以看到,控制台返回信息提示,Docker已經正常運行。 

第五:創建自己的Docker鏡像

創建鏡像需要使用Dockerfile文件,下面以asp.net core 為例,創建一個自己的鏡像,示例中已經創建好了Dockerfile文件,直接使用即可,具體內容留着以后研究。

操作參考:為 .NET Core 應用程序生成 Docker 映像:https://docs.microsoft.com/zh-cn/dotnet/core/docker/building-net-docker-images 

首先:確保已經安裝了Dotnet Core 2.0

然后:下載asp.net core 示例代碼 :git clone https://github.com/dotnet/dotnet-docker-samples/

進入項目代碼目錄,運行示例,測試一下

cd aspnetapp

dotnet run

應用程序啟動后,在 Web 瀏覽器中訪問 http://localhost:5000。好了,一切正常,沒問題。

創建鏡像,輸入Docker命令:

docker build -t aspnetapp .

生成鏡像的過程需要下載依賴鏡像包,大概需要十多分鍾,執行過程中不要關閉控制台。 

鏡像生成完成之后,運行一下試試:

docker run -it -p 5002:80 --name aspnetcore aspnetapp 

啟動完成,打開瀏覽器:http://192.168.99.100:5002/

說明:-p 5002:80 表示將Docker主機的5002端口和Docker容器的80端口進行關聯映射,即,外部訪問使用5002端口,容器內部使用80端口,即 HTTP服務端口。

注意:這里是IP地址,至於這個IP是怎么來的,說實話,我也不知道,我嘗試了幾次,始終不能訪問,然后打開kitematic,才發現只有這個IP才能訪問。[哭臉]

 

 后記:

當看到程序正常啟動運行時,是不是滿滿的成就感,學習就這么簡單,最重要的是下定決心邁出行動的第一步。

本篇文章力求簡潔,力圖盡快看到學習成果,算是給大家深入學習提供的一塊敲門磚,墊腳石。

另外文中的概念都是我自己理解的,可能跟標准答案不符,僅供理解和參考。

推薦幾個深入學習的網址:

Docker官方鏡像倉庫:https://hub.docker.com 

Docker菜鳥教程:http://www.runoob.com/docker/docker-tutorial.html

Docker入門教程:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

為 .NET Core 應用程序生成 Docker 映像:https://docs.microsoft.com/zh-cn/dotnet/core/docker/building-net-docker-images 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM