本篇主要講解在Docker容器中運(yùn)行.Net Framework控制臺(tái)應(yīng)用程序的詳細(xì)步驟勿侯。算是Docker容器的入門(mén)示例胁后。
生成.net Framework控制臺(tái)應(yīng)用程序
打開(kāi)VS創(chuàng)建一個(gè)Console Application锦亦,如下圖Image-1所示:
打開(kāi)Program.cs妹萨,在main函數(shù)中寫(xiě)入一行代碼,在控制臺(tái)輸出一條消息,如下圖Image-2所示:
運(yùn)行控制臺(tái)程序得到如下輸出結(jié)果徒爹,會(huì)輸出一條信息荚醒,和當(dāng)前機(jī)器的computer name,如下圖Image-3所示:
添加Dockerfile文件
在添加Dockerfile文件之前讓我們簡(jiǎn)單了解一下Dockerfile文件的作用隆嗅。Dockerfile是一個(gè)文本文件界阁,包含用戶可以在命令行上調(diào)用的所有命令來(lái)創(chuàng)建一個(gè)Image,他是Docker daemon在創(chuàng)建image時(shí)調(diào)用的命令列表胖喳。Dockerfile包含了Docker運(yùn)行應(yīng)用程序所需的所有信息泡躯,要運(yùn)行的基本Docker Image,項(xiàng)目代碼的位置丽焊,它所具有的任何依賴關(guān)系以及在啟動(dòng)時(shí)要運(yùn)行的命令较剃。用一句話來(lái)總結(jié)就是:Docker daemon通過(guò)讀取dockerfile中的內(nèi)容來(lái)創(chuàng)建鏡像(Image)。
右鍵工程添加Dockerfile文件(這塊大家一定要注意技健,添加的Dockerfile文件一定不要有任何后綴名P囱ā!雌贱!)
在Dockerfile文件中我們添加如下三行命令
(1). FROM microsoft/windowsservercore?
通過(guò)FROM指令來(lái)指定我們所要使用的基本鏡像
(2). ADD bin/Release/ /
通過(guò)ADD指令我們將build的應(yīng)用程序添加到容器的跟文件夾中
(3). ENTRYPOINT HelloDocker.exe
通過(guò)ENTRYPOINT指令我們指定在容器啟動(dòng)時(shí)要運(yùn)行的應(yīng)用程序啊送。
創(chuàng)建鏡像(Image)
打開(kāi)cmd命令行工具,進(jìn)入到Dockerfile所在的文件夾欣孤,鍵入如下命令:
docker build -t hellodocker:v1 .? ? ? ? 如下圖Image-4所示:
docker通過(guò)build指令來(lái)創(chuàng)建鏡像(Image), build 指令后的-t 表示的是指定當(dāng)前Image的Tag馋没,大家可以理解成Image的Name,鏡像名稱冒號(hào)后面的v1大家可以理解成當(dāng)前Image的版本號(hào)降传,如果不指定的話默認(rèn)會(huì)為latest篷朵,最后的. 表示的是Dockfile所在的當(dāng)前目錄。上面的指令可以理解成基于Dockerfile創(chuàng)建一個(gè)v1版本的名為hellodocker的鏡像婆排。執(zhí)行該命令會(huì)得到如下圖Image-5所示的結(jié)果:
截圖中顯示了Dockerfile中我們所寫(xiě)的三個(gè)指令的執(zhí)行情況声旺,最后會(huì)提示你Image創(chuàng)建成功。如果大家是第一次執(zhí)行FROM microsoft/windowsservercore指令段只,docker daemon會(huì)去docker registry中拉取該基鏡像艾少,這個(gè)過(guò)程相當(dāng)于下載該鏡像到本地,執(zhí)行起來(lái)會(huì)慢一些翼悴,大家不要著急。
我們通過(guò)docker images指令來(lái)查看創(chuàng)建的鏡像,如下圖Image-6所示:
運(yùn)行容器
通過(guò)指令docker run --name hellodockercontainer hellodocker:v1 來(lái)運(yùn)行容器幔妨,結(jié)果如圖Image-7所示:
該指令的意思是基于hellodocker:v1鏡像來(lái)運(yùn)行一個(gè)名為hellodockercontainer的容器鹦赎。有一個(gè)細(xì)節(jié)大家需要注意一下就是在本機(jī)運(yùn)行時(shí)輸出的Machine Name是機(jī)器的computer name,而在容器中運(yùn)行時(shí)輸出的Machine name為容器的ID误堡。我們可以通過(guò)指令docker ps -a來(lái)查看已經(jīng)創(chuàng)建的容器古话,如圖Image-8所示:
以上便完成了容器化.NET Framework控制臺(tái)應(yīng)用程序,希望這個(gè)簡(jiǎn)單的例子能幫助大家了解docker常用的一些指令锁施,docker中提供了很多指令陪踩,大家可以通過(guò)docker --help來(lái)進(jìn)行查看杖们,同時(shí)也可以訪問(wèn)docker的官方網(wǎng)站進(jìn)行進(jìn)一步的指令學(xué)習(xí),官方網(wǎng)站地址:https://docs.docker.com/engine/reference/commandline/port/