本篇主要講解在Docker容器中執行.Net Framework控制檯應用程式的詳細步驟。算是Docker容器的入門示例。
生成.net Framework控制檯應用程式
開啟VS建立一個Console Application,如下圖Image-1所示:
開啟Program.cs,在main函式中寫入一行程式碼,在控制檯輸出一條訊息,如下圖Image-2所示:
執行控制檯程式得到如下輸出結果,會輸出一條資訊,和當前機器的computer name,如下圖Image-3所示:
新增Dockerfile檔案
在新增Dockerfile檔案之前讓我們簡單瞭解一下Dockerfile檔案的作用。Dockerfile是一個文字檔案,包含使用者可以在命令列上呼叫的所有命令來建立一個Image,他是Docker daemon在建立image時呼叫的命令列表。Dockerfile包含了Docker執行應用程式所需的所有資訊,要執行的基本Docker Image,專案程式碼的位置,它所具有的任何依賴關係以及在啟動時要執行的命令。用一句話來總結就是:Docker daemon通過讀取dockerfile中的內容來建立映象(Image)。
右鍵工程新增Dockerfile檔案(這塊大家一定要注意,新增的Dockerfile檔案一定不要有任何字尾名!!!)
在Dockerfile檔案中我們新增如下三行命令
(1). FROM microsoft/windowsservercore
通過FROM指令來指定我們所要使用的基本映象
(2). ADD bin/Release/ /
通過ADD指令我們將build的應用程式新增到容器的跟資料夾中
(3). ENTRYPOINT HelloDocker.exe
通過ENTRYPOINT指令我們指定在容器啟動時要執行的應用程式。
建立映象(Image)
開啟cmd命令列工具,進入到Dockerfile所在的資料夾,鍵入如下命令:
docker build -t hellodocker:v1 . 如下圖Image-4所示:
docker通過build指令來建立映象(Image), build 指令後的-t 表示的是指定當前Image的Tag,大家可以理解成Image的Name,映象名稱冒號後面的v1大家可以理解成當前Image的版本號,如果不指定的話預設會為latest,最後的. 表示的是Dockfile所在的當前目錄。上面的指令可以理解成基於Dockerfile建立一個v1版本的名為hellodocker的映象。執行該命令會得到如下圖Image-5所示的結果:
截圖中顯示了Dockerfile中我們所寫的三個指令的執行情況,最後會提示你Image建立成功。如果大家是第一次執行FROM microsoft/windowsservercore指令,docker daemon會去docker registry中拉取該基映象,這個過程相當於下載該映象到本地,執行起來會慢一些,大家不要著急。
我們通過docker images指令來檢視建立的映象,如下圖Image-6所示:
執行容器
通過指令docker run --name hellodockercontainer hellodocker:v1 來執行容器,結果如圖Image-7所示:
該指令的意思是基於hellodocker:v1映象來執行一個名為hellodockercontainer的容器。有一個細節大家需要注意一下就是在本機執行時輸出的Machine Name是機器的computer name,而在容器中執行時輸出的Machine name為容器的ID。我們可以通過指令docker ps -a來檢視已經建立的容器,如圖Image-8所示:
以上便完成了容器化.NET Framework控制檯應用程式,希望這個簡單的例子能幫助大家瞭解docker常用的一些指令,docker中提供了很多指令,大家可以通過docker --help來進行檢視,同時也可以訪問docker的官方網站進行進一步的指令學習,官方網站地址:
下一篇(Docker容器中執行ASP.Net MVC應用程式)