.NET FX 应用程序也是可以容器化的,容器化的选项有两个:

  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/aspnetARG sourceWORKDIR /inetpub/wwwrootCOPY ${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容器里,也是一样的方法过程,你需要构建一个安装有mono环境的镜像。

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

  1. 制作一个console app的Dockerfile并运行

FROM mono:latestRUN mono --versionWORKDIR /appCOPY ./bin/Debug/ .CMD [ "mono",  "monoApp.exe" ]

打包镜像

cd monoappdocker build . -t monoappdocker run monoapp

执行结果

MacBook-Pro-6:monoApp lind.zhang$ docker run monoappHello 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/monupwEXPOSE 80WORKDIR /dataCOPY ./bin/ .

启动你的容器,对外访问用8080端口,容器内部是80端口

MacBook-Pro-6:monoMvc lind.zhang$ docker run -p 8080:80 monomvcStarting ... OK

原文地址:https://www.cnblogs.com/lori/p/10685107.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

.net 4.5部署到docker容器相关推荐

  1. K8S精华问答 | 如何监控部署在Docker容器上的应用程序?

    kubernetes,简称K8S,是用8代替8个字符"ubernete"而成的缩写.是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化 ...

  2. 微服务项目部署在docker容器运行

    昨天的一篇微服务项目中涉及到docker部署,今天写一篇关于微服务项目部署在docker容器中运行,使用github上另外一个比较经典的微服务项目piggyMetric,项目的github地址:htt ...

  3. Linux环境打包Qt程序并部署到Docker容器

    Linux环境打包Qt程序并部署到Docker容器 根据项目需要,将UKylin版本的qt应用程序打包并且部署到docker容器中 系统版本 UKylin版本:Ubuntu18.04 Docker镜像 ...

  4. 构建ChatGPT 镜像,并将其部署到 Docker 容器中。

    自己构建 ChatGPT 镜像,并将其部署到 Docker 容器中. 下面是一个简单的 ChatGPT 镜像构建示例: 准备工作 在开始构建 ChatGPT 镜像之前,我们需要完成以下准备工作: 安装 ...

  5. Docker容器 - DockerFile发布Java微服务并部署到Docker容器

    目录 通过idea新建一个普通微服务项目 一.新建项目 二.POM 三.YML 四.启动类 五.Controller类 启动 通过Dockerfile发布微服务部署到docker容器 一.通过idea ...

  6. 面试官:我把数据库部署在Docker容器内,你觉得如何?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:33h.co/eqFQ 近2年Docker非常的火热,各位开 ...

  7. 数据库为何不建议部署在Docker容器内

    近2年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程, ...

  8. 为什么不建议把数据库部署在Docker容器内

    近几年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程, ...

  9. docker -v 覆盖了容器中的文件_springboot配合maven打成可执行jar,构建镜像部署到docker容器中...

    本篇文章将介绍springboot应用如何打成jar包,并将jar构建为docker镜像部署到docker中 应用打包 需要配合spring-boot-maven-plugin打包,将以下代码放到应用 ...

最新文章

  1. 三分钟了解“Java重写”
  2. java operators_Java Basic Operators
  3. java正则 找出数字,Java顶用正则表达式找出数字
  4. java usc2短信编码_手机短信PDU编码与解码
  5. Docker入门 - 005 Docker 容器连接
  6. 星号三角形python_python中的星号三角形
  7. Android 进程常驻(5)----开机广播的简单守护以及总结
  8. python处理teradata数据库_Python脚本连接Teradata数据库
  9. java.util.list 报错_Java 报错 .updateValue' has an unsupported return type: interface java.util.List...
  10. Numpy Mathematical functions 数学函数
  11. # 遍历结构体_关于二叉树怎样建立和四种遍历方法你知道吗?
  12. kettle的乱码和null值无法插入
  13. zookeeper之学习(三)zkcli补充
  14. ggplot2作图4
  15. 系统学习深度学习(三十三)--Prioritized Replay DQN
  16. Python语法命令学习-Day3(作业练习)
  17. paip.调用GUI接口.
  18. PowerDesigner 报错 Could not Initialize JavaVM!
  19. SLAM中本质矩阵E,基础矩阵F,单应矩阵H总结
  20. 数字图像处理基础——图像空间操作的3种形式

热门文章

  1. 如何停止Internet Explorer 11的建议站点?
  2. 点击右侧导航栏,实现iframe嵌入子页面中div,滑动到最上面
  3. 洛谷P4364 [九省联考2018]IIIDX(线段树)
  4. Oracle即将发布的全新Java垃圾收集器 ZGC
  5. Python入门教程之Python保留字符大全
  6. 软件架构实践文章链接
  7. oslo.config资源
  8. C++学习之路: 线程封装(基于对象编程)
  9. linux 安全审计
  10. 关于IIS服务启动失败的问题:“IIS提示‘另一个程序正在使用此文件,进程无法访问’”,的解决方法...