前言
本文主要給大家介紹了關(guān)于.net 4.5部署到docker容器的相關(guān)內(nèi)容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧
.net4.5部署到docker容器
- 部署到windows容器
- 部署到linux容器
部署到windows容器
由于.net本身就是運行在windows平臺的,所以它與windows容器也是更加適合,你可以以iis鏡像為基礎,去編寫你的Dockerfile文件,從而去構(gòu)建你的.net項目鏡像。
1.兩個現(xiàn)成的例子
.net console程序
1
|
docker run -- rm mcr.microsoft.com /dotnet/framework/samples :dotnetapp |
.net web程序
1
|
docker run -it -- rm -p 8000:80 --name aspnet_sample mcr.microsoft.com /dotnet/framework/samples :aspnetapp |
1.為自己項目添加一個Dockerfile構(gòu)建鏡像
1
2
3
4
|
FROM microsoft /aspnet ARG source WORKDIR /inetpub/wwwroot COPY ${ source :-obj /Docker/publish } . |
參考:https://docs.microsoft.com/en-us/aspnet/mvc/overview/deployment/docker-aspnetmvc
部署到linux容器
對于非.net core的應用程序來說,要想在linux平臺運行需要安裝mono框架,這是在linux平臺運行.net程序的唯一方法,那么如果想把.net程序部署到linux容器里,也是一樣的方法過程,你需要構(gòu)建一個安裝有mono環(huán)境的鏡像。
為自己的項目添加一個基于mono的Dockerfile
制作一個console app的Dockerfile并運行
1
2
3
4
5
|
FROM mono:latest RUN mono --version WORKDIR /app COPY . /bin/Debug/ . CMD [ "mono" , "monoApp.exe" ] |
打包鏡像
1
2
3
|
cd monoapp #Docfile所在目錄,它一般在項目根目錄 docker build . -t monoapp docker run monoapp |
執(zhí)行結(jié)果
1
2
3
|
MacBook-Pro-6:monoApp lind.zhang$ docker run monoapp Hello World! MacBook-Pro-6:monoApp lind.zhang$ |
制作一個.net web的Dockerfile并運行
前提:我們的web項目要想運行,需要有一個像IIS一種的服務器組件,在linux里我們一般使用jexus來實現(xiàn)這個功能,也就是說,我們的docker鏡像應該即有mono還要有jexus的集成,這個鏡像我們可以自己寫,也可以使用現(xiàn)成的鏡像azraelrabbit/monupw,下面的Dockerfile是把一個web項目monoMvc打包成一個鏡像。
先把鏡像拉到本地
1
|
docker pull azraelrabbit /monupw |
部署的步驟
- 建立Dockerfile文件,發(fā)布網(wǎng)站時應該帶上
- 發(fā)布網(wǎng)站
- 進行發(fā)布后的地址
- 打包 docker build . -t 鏡像名稱
- 啟動容器 docker run -d -p 8080:80 鏡像名稱
編寫Dockerfile文件
1
2
3
4
|
FROM azraelrabbit /monupw EXPOSE 80 WORKDIR /data COPY . /bin/ . |
啟動你的容器,對外訪問用8080端口,容器內(nèi)部是80端口
1
2
|
MacBook-Pro-6:monoMvc lind.zhang$ docker run -p 8080:80 monomvc Starting ... OK |
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。
原文鏈接:https://www.cnblogs.com/lori/p/10685107.html