.net 4.5部署到docker容器
.NET?FX?應(yīng)用程序也是可以容器化的,容器化的選項(xiàng)有兩個(gè):
部署到windows容器
部署到linux容器
部署到windows容器
由于.net本身就是運(yùn)行在windows平臺(tái)的,所以它與windows容器也是更加適合,你可以以iis鏡像為基礎(chǔ),去編寫(xiě)你的Dockerfile文件,從而去構(gòu)建你的.net項(xiàng)目鏡像。
兩個(gè)現(xiàn)成的例子
.net console程序
.net web程序
docker run?-it?--rm?-p?8000:80?--name?aspnet_sample?mcr.microsoft.com/dotnet/framework/samples:aspnetapp為自己項(xiàng)目添加一個(gè)Dockerfile構(gòu)建鏡像
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
參考:https://docs.microsoft.com/en-us/aspnet/mvc/overview/deployment/docker-aspnetmvc
部署到linux容器
對(duì)于非.net?core的應(yīng)用程序來(lái)說(shuō),要想在linux平臺(tái)運(yùn)行需要安裝mono框架,這是在linux平臺(tái)運(yùn)行.net程序的唯一方法,那么如果想把.net程序部署到linux容器里,也是一樣的方法過(guò)程,你需要構(gòu)建一個(gè)安裝有mono環(huán)境的鏡像。
為自己的項(xiàng)目添加一個(gè)基于mono的Dockerfile
制作一個(gè)console app的Dockerfile并運(yùn)行
RUN mono --version
WORKDIR /app
COPY ./bin/Debug/ .
CMD [ "mono", "monoApp.exe" ]
打包鏡像
cd monoappdocker build . -t monoapp
docker run monoapp
執(zhí)行結(jié)果
MacBook-Pro-6:monoApp?lind.zhang$?docker?run monoappHello?World!
MacBook-Pro-6:monoApp?lind.zhang$
制作一個(gè).net web的Dockerfile并運(yùn)行
前提:我們的web項(xiàng)目要想運(yùn)行,需要有一個(gè)像IIS一種的服務(wù)器組件,在linux里我們一般使用jexus來(lái)實(shí)現(xiàn)這個(gè)功能,也就是說(shuō),我們的docker鏡像應(yīng)該即有mono還要有jexus的集成,這個(gè)鏡像我們可以自己寫(xiě),也可以使用現(xiàn)成的鏡像azraelrabbit/monupw,下面的Dockerfile是把一個(gè)web項(xiàng)目monoMvc打包成一個(gè)鏡像。
先把鏡像拉到本地
docker pull azraelrabbit/monupw部署的步驟
建立Dockerfile文件,發(fā)布網(wǎng)站時(shí)應(yīng)該帶上
發(fā)布網(wǎng)站
進(jìn)行發(fā)布后的地址
打包 docker build . -t 鏡像名稱
啟動(dòng)容器?docker?run?-d?-p?8080:80?鏡像名稱
編寫(xiě)Dockerfile文件
FROM azraelrabbit/monupwEXPOSE 80
WORKDIR /data
COPY ./bin/ .
啟動(dòng)你的容器,對(duì)外訪問(wèn)用8080端口,容器內(nèi)部是80端口
MacBook-Pro-6:monoMvc?lind.zhang$?docker?run?-p?8080:80?monomvcStarting ... OK
原文地址:https://www.cnblogs.com/lori/p/10685107.html
.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總?http://www.csharpkit.com?
總結(jié)
以上是生活随笔為你收集整理的.net 4.5部署到docker容器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C#并行编程(3):并行循环
- 下一篇: 将传统 WPF 程序迁移到 DotNet