.net4.5部署到docker容器
.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
部署到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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2018-04-10 springboot~Compiler时开启插件的注解功能
2018-04-10 springboot~环境搭建与Helloworld
2015-04-10 MongoDB学习笔记~索引提高查询效率
2015-04-10 MongoDB学习笔记~客户端命令行的使用
2013-04-10 知方可补不足~开发人员可以自己定义VS文件模版
2012-04-10 MVC最为标准的添加操作(从实体验证到实体入库)