本篇主要講解在Docker容器中執行.Net Framework控制檯應用程式的詳細步驟。算是Docker容器的入門示例。
生成.net Framework控制檯應用程式
開啟VS建立一個Console Application,如下圖Image-1所示:
![Docker容器中執行.net framework控制檯程式](https://i.iter01.com/images/488e4157a2fd9cb75ebc9e092960d1ab928b74a3c63f2a7dc3ebeed79d1fac1c.png)
開啟Program.cs,在main函式中寫入一行程式碼,在控制檯輸出一條訊息,如下圖Image-2所示:
![Docker容器中執行.net framework控制檯程式](https://i.iter01.com/images/f6bc5b3d27adb839ec390c3ebcc7d01a267a74f3d341d151fd52b28276eebb7f.png)
執行控制檯程式得到如下輸出結果,會輸出一條資訊,和當前機器的computer name,如下圖Image-3所示:
![Docker容器中執行.net framework控制檯程式](https://i.iter01.com/images/8ffd37a179adfc70b1f94305a8492444719d2c1cc528da795970e67896b7ba0d.png)
新增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容器中執行.net framework控制檯程式](https://i.iter01.com/images/5780286bc26c6c02b141c826284aa32eae0745d043d5bd67aceea0949b4fbb7b.png)
docker通過build指令來建立映象(Image), build 指令後的-t 表示的是指定當前Image的Tag,大家可以理解成Image的Name,映象名稱冒號後面的v1大家可以理解成當前Image的版本號,如果不指定的話預設會為latest,最後的. 表示的是Dockfile所在的當前目錄。上面的指令可以理解成基於Dockerfile建立一個v1版本的名為hellodocker的映象。執行該命令會得到如下圖Image-5所示的結果:
![Docker容器中執行.net framework控制檯程式](https://i.iter01.com/images/94561659792c39ea46710b5202c6c41275894c0ee73f621168c474436b537bda.png)
截圖中顯示了Dockerfile中我們所寫的三個指令的執行情況,最後會提示你Image建立成功。如果大家是第一次執行FROM microsoft/windowsservercore指令,docker daemon會去docker registry中拉取該基映象,這個過程相當於下載該映象到本地,執行起來會慢一些,大家不要著急。
我們通過docker images指令來檢視建立的映象,如下圖Image-6所示:
![Docker容器中執行.net framework控制檯程式](https://i.iter01.com/images/e0c84b2aa3b6c7f62d2866c5ea4181237e54d5f60a8b653ff4ca7d206ff8c9f0.png)
執行容器
通過指令docker run --name hellodockercontainer hellodocker:v1 來執行容器,結果如圖Image-7所示:
![Docker容器中執行.net framework控制檯程式](https://i.iter01.com/images/f12b70ba6560a48ef286518a86a49795890c59ee291254c62e280914551ed74a.png)
該指令的意思是基於hellodocker:v1映象來執行一個名為hellodockercontainer的容器。有一個細節大家需要注意一下就是在本機執行時輸出的Machine Name是機器的computer name,而在容器中執行時輸出的Machine name為容器的ID。我們可以通過指令docker ps -a來檢視已經建立的容器,如圖Image-8所示:
![Docker容器中執行.net framework控制檯程式](https://i.iter01.com/images/52470f175f69373d2507e6c41d3a27aa96611d10a7064d3be95ce06f44e0ec2a.png)
以上便完成了容器化.NET Framework控制檯應用程式,希望這個簡單的例子能幫助大家瞭解docker常用的一些指令,docker中提供了很多指令,大家可以通過docker --help來進行檢視,同時也可以訪問docker的官方網站進行進一步的指令學習,官方網站地址: