.net4.5部署到docker容器

.net4.5部署到docker容器

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

部署到windows容器

因为.net自己就是运行在windows平台的,因此它与windows容器也是更加适合,你能够以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目镜像。html

  1. 两个现成的例子 .net console程序
docker run --rm mcr.microsoft.com/dotnet/framework/samples:dotnetapp

.net web程序linux

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} .

参考:https://docs.microsoft.com/en-us/aspnet/mvc/overview/deployment/docker-aspnetmvcweb

部署到linux容器

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

为本身的项目添加一个基于mono的Dockerfile

  1. 制做一个console app的Dockerfile并运行
FROM mono:latest
RUN mono --version
WORKDIR /app
COPY ./bin/Debug/ .
CMD [ "mono",  "monoApp.exe" ]

打包镜像windows

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打包成一个镜像。mvc

先把镜像拉到本地app

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

原文出处:https://www.cnblogs.com/lori/p/10685107.html

相关文章
相关标签/搜索