.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
.net4.5部署到docker容器的更多相关文章
- Ubuntu16.04 部署安装Docker容器 & 注意事项
一.部署安装Docker容器 1.1 Ubuntu下安装 crul sudo apt install curl curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多 ...
- docker多个容器连接 将 Rails 程序部署到 Docker 容器中
在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
实操:将一个spring boot项目部署到docker容器里运行 实验需要的环境: 腾讯云+Ubuntu 16.04 x64+idea+插件docker integration+daocloud 第 ...
- Linux下将.Asp Core 部署到 Docker容器中
我们来部署一个简单的例子: 将一个简单的.Aps Core项目部署到Docker容器中并被外网访问 说明: 下面的步骤都是建立在宿主服务器系统已经安装配置过Docker容器,安装Docker相对比较简 ...
- 【docker部署】基于linux的centos操作系统部署安装docker容器
一.docker介绍 容器是轻量级的,包含应用运行所需所有东西(代码.库.运行时环境.系统设置,以及依赖关系)的独立的包.每个容器都部署于它自己的 CPU.内存.块 I/O,以及网络资源上,所有这些都 ...
- 为什么不建议把数据库部署在Docker容器内?
近2年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程, ...
- 面试官:我把数据库部署在Docker容器内,你觉得如何?
开源Linux 一个执着于技术的公众号 上一篇:CentOS 7上搭建Zabbix4.0 近2年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数 ...
- 将netcore网站部署到docker容器中
一.背景 最近一直在看docker的教程,基础知识看的差不多了.理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中. 环境:1.docker for wind ...
- 将Spring-boot应用部署到Docker容器
1:Docker中设置阿里云加速 使用阿里云的加速器,因为在使用docker的时候,会需要从docker的网站下载镜像文件,下载速度可能会很慢.获得阿里云加速,需要登录阿里云开发者平台,然后点击右侧的 ...
随机推荐
- ratelimit.go
// The ratelimit package provides an efficient token bucket implementation , false } tb.avai ...
- [Poi2012]Festival 差分约束+tarjan
差分约束建图,发现要在每个联通块里求最长路,600,直接O(n3) floyed #include<cstdio> #include<cstring> #include< ...
- 【爆料】-《昆士兰大学毕业证书》Queensland一模一样原件
☞昆士兰大学毕业证书[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归& ...
- Vue.js-11:第十一章 - Vue 中 ref 的使用
一.前言 在之前的前端开发中,为了实现我们的需求,通常采用的方案是通过 JS/Jquery 直接操纵页面的 DOM 元素,得益于 Jquery 对于 DOM 元素优异的操作能力,我们可以很轻易的对获取 ...
- 手写事件代理函数 (Delegated function)
‘手写 ’ 这个词 ,面试是不是听过无数遍呢 ! 今天我们来手写一个这样的事件委托函数 => function( parent, selector, type , handle) {} 你需 ...
- 神奇的Scala Macro之旅(三)- 实际应用
在上一篇中,我们示范了使用macro来重写 Log 的 debug/info 方法,并大致的介绍了 macro 的基本语法.基本使用方法.以及macro背后的一些概念, 如AST等.那么,本篇中,我们 ...
- 微服务架构 - 巧妙获取被墙的Docker镜像
在国内由于种种原因,有些Docker镜像直接是获取不到的,特别是k8s中的一些镜像.本人在部署k8s中的helm组件时需要获取tiller镜像,如果直接用如下命令: docker pull gcr.i ...
- 使用Kubernetes演示金丝雀发布
使用Kubernetes演示金丝雀发布 为了更直观的看出金丝雀发布的效果,我们这里使用了Prometheus监控来观察这个过程.不知道怎么使用Prometheus的同学请看使用Prometheus监控 ...
- len(x) 击败 x.len(),从内置函数看 Python 的设计思想
内置函数是 Python 的一大特色,用极简的语法实现很多常用的操作. 它们预先定义在内置命名空间中,开箱即用,所见即所得.Python 被公认是一种新手友好型的语言,这种说法能够成立,内置函数在其中 ...
- 安装Mysql时端口号3306被占用,解决方法
当我们在卸载mysql数据库重新安装的时候,会出现端口号3306被占用的情况 有两种解决方案: 一:可以不使用3306端口,也可以换成别的端口,如3307,3308等等 二:可以打开命令窗口 1.wi ...