欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.net4.5部署到docker容器

程序员文章站 2022-05-20 11:50:08
.net4.5部署到docker容器 1. 部署到windows容器 2. 部署到linux容器 部署到windows容器 由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合,你可以以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目 ......

.net4.5部署到docker容器

  1. 部署到windows容器
  2. 部署到linux容器

部署到windows容器

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

  1. 两个现成的例子
    .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
  1. 为自己项目添加一个dockerfile构建镜像
from microsoft/aspnet  
arg source  
workdir /inetpub/wwwroot  
copy ${source:-obj/docker/publish} . 

参考:

部署到linux容器

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

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

  1. 制作一个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$
  1. 制作一个.net web的dockerfile并运行

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

先把镜像拉到本地

docker pull azraelrabbit/monupw

部署的步骤

  1. 建立dockerfile文件,发布网站时应该带上
  2. 发布网站
  3. 进行发布后的地址
  4. 打包 docker build . -t 镜像名称
  5. 启动容器 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