.net4.5部署到docker容器

* 部署到windows容器
* 部署到linux容器
部署到windows容器


由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合,你可以以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目镜像。

* 两个现成的例子
.net console程序 docker run --rm
mcr.microsoft.com/dotnet/framework/samples:dotnetapp
.net web程序
docker run -it --rm -p 8000:80 --name aspnet_sample
mcr.microsoft.com/dotnet/framework/samples:aspnetapp
* 为自己项目添加一个Dockerfile构建镜像 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

<https://docs.microsoft.com/en-us/aspnet/mvc/overview/deployment/docker-aspnetmvc>

部署到linux容器

对于非.net
core的应用程序来说,要想在linux平台运行需要安装mono框架,这是在linux平台运行.net程序的唯一方法,那么如果想把.net程序部署到linux容器里,也是一样的方法过程,你需要构建一个安装有mono环境的镜像。

为自己的项目添加一个基于mono的Dockerfile

* 制作一个console app的Dockerfile并运行 FROM mono:latest RUN mono --version WORKDIR
/app COPY ./bin/Debug/ . CMD [ "mono", "monoApp.exe" ]
打包镜像
cd monoapp #Docfile所在目录,它一般在项目根目录 docker build . -t monoapp docker run monoapp
执行结果
MacBook-Pro-6:monoApp lind.zhang$ docker run monoapp Hello World!
MacBook-Pro-6:monoApp lind.zhang$
*
制作一个.net web的Dockerfile并运行


前提:我们的web项目要想运行,需要有一个像IIS一种的服务器组件,在linux里我们一般使用jexus来实现这个功能,也就是说,我们的docker镜像应该即有mono还要有jexus的集成,这个镜像我们可以自己写,也可以使用现成的镜像
azraelrabbit/monupw,下面的Dockerfile是把一个web项目monoMvc打包成一个镜像。

先把镜像拉到本地
docker pull azraelrabbit/monupw
部署的步骤

* 建立Dockerfile文件,发布网站时应该带上
* 发布网站
* 进行发布后的地址
* 打包 docker build . -t 镜像名称
* 启动容器 docker run -d -p 8080:80 镜像名称
编写Dockerfile文件
FROM azraelrabbit/monupw EXPOSE 80 WORKDIR /data COPY ./bin/ .
启动你的容器,对外访问用8080端口,容器内部是80端口
MacBook-Pro-6:monoMvc lind.zhang$ docker run -p 8080:80 monomvc Starting ... OK

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信