ASP.NET Core 2.1 使用Docker运行的方法步骤
1.新建一个 ASP.NET Core 2.1 项目
然后运行一下项目,确保我们刚刚建立的项目可以正常运行。
2.编写 Dockerfile
新建一个文本文件,命名为 Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime WORKDIR /app COPY . . EXPOSE 80 ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"]
这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime
如果要尝试更小的镜像,可以试试 microsoft/dotnet:2.1-aspnetcore-runtime-alpine
,这镜像使用了alpine
一款精简版极小的linux,但是随之而来的就是阉割了一些功能,实际使用的时候需要测试,比如国际化支持,它默认在这个镜像里面没有开启,需要配置环境变量来开启。
需要设置Dockerfile的如下属性,保证其能复制到发布目录:
3.构建Docker镜像
我们将镜像命名为 :aspnetcoredocker
进入到发布文件目录,执行命令便可打包镜像:
docker build -t aspnetcoredocker .
我们可以编写 发布+构建 的脚本。
Windows:
文件名:build.bat
@echo off echo "Windows Docker build" cd ../AspNetCore.Docker dotnet publish -c Release -o ../publish cd ../publish echo "publish success" docker build -t aspnetcoredocker .
文件名:Linux:
build.sh
#!/bin/bash echo Linux Docker build cd ../AspNetCore.Docker dotnet publish -c Release -o ../publish cd ../publish echo publish success docker build -t aspnetcoredocker .
文件夹结构如下图:
执行构建:
./build.sh
构建成功后可以通过 docker images
命令查询到我们构建的镜像:
若在linux下执行sh脚本时,遇到错误“-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory“,请通过vim/vi编辑sh脚本,按:建,输入 set ff=unix
,然后回车、wq保存即可
4.运行镜像
通过命令运行
docker run --name=aspnetcoredocker -p 7777:80 -d aspnetcoredocker
--name
:指定容器名称
-p
:指定容器端口
-d
:指定容器 后台运行
出现一长串字符串,便是表示运行成功:
我们也可以通过 docker ps
命令,查询我们正在运行的容器:
我们还可以通过 docker logs <容器名称或者id>来查看启动日志:
5.验证访问
我们可以通过 curl
命令来直接访问我们容器启动的asp.net core 网站:
或者直接通过浏览器访问:
至此,我们通过Docker运行asp.net core 2.1应用程序就结束了。
6.资料
本文所用代码:https://github.com/stulzq/BlogDemos/tree/master/AspNetCore.Docker
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
.Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法
前言 本文主要介绍了关于.Net Core自动化部署用docker版jenkins部署dotnetcore应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的实现步骤吧. 安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Container Dockerfile FROM jenkins/jenkins # Switch to root t
-
Docker容器运行ASP.NET Core的实现步骤
最近要学习的知识太多,都不知道先学哪些了,原本计划这篇博客是写xamarin.forms中的listview用法,关于listview的用法简书上有一篇介绍的也比较详细,所以暂时先缓一缓,属于次要任务,等以后再写.本周在万能的淘宝找了写关于区块链的教程,同时了解了下.net core.最近一两年对C#技术跟进不多,侧重点是Java,之前出.net core1.0的时候觉得.net core还不完善,所以就没学,没想到.net core这么快已经要到3.0了.毕竟自己是C#出身,一精多转,不能忘本
-
docker部署Asp.net core应用的完整步骤
1 容器概念 使用Docker前我们首先要简单了解一下容器的概念.MSDN上有一张虚拟机和容器的对比图,很好的展示了虚拟机和容器的区别,如下所示,虚拟机包括应用程序.必需的库或二进制文件以及完整的来宾操作系统,每台虚拟机都有一个单独的内核,我们完全可以把虚拟机看做是一台真实的物理机.容器包括应用程序及其所有依赖项,与其他容器共享 OS 内核,容器在主机操作系统上作为独立进程运行,我们可以把容器看做是一个应用沙盒. 我们经常会遇到"我机器上可以运行"的问题吧,然后部署到其他机器时就遇到了
-
Linux服务器下利用Docker部署.net Core项目的全过程
发布ASP.NET Core项目 和普通的项目发布一样,将项目发布到目标文件夹中 构建Dockerfile文件 在目标文件根目录新建Dockerfile文件(没有后缀) FROM microsoft/dotnet//基于'microsoft/dotnet' 来构建镜像 COPY . /app //拷贝项目文件夹中的所有文件到docker容器中的app文件夹 这里是两个参数 WORKDIR /app //设置工作目录为 '/app' 文件夹,即容器启动默认的文件夹 EXPOSE 80 //设置Do
-
.NET Core利用skiasharp文字头像生成方法教程(基于docker发布)
一.问题背景 目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理,到了.NET Core下一脸懵逼的我,只能百度+谷歌看看有没啥解决方案,好在网上资料也多,.NET Core下的图像处理还是有些开源库的,我目前使用的其中一个:SkiaSharp,介绍反正大家自己网上找找都有,下面就用该库实现一个文字头像的小功能,话不多说了,来一起看看详细的介绍吧. 二.简单的设计要求 对于输入的名字得解析(
-
详解ASP.NET Core Docker部署
前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序. ASP.NET Nginx 发布和部署 :http://www.cnblogs.com/savorboard/p/dotnet-core-publish-nginx.html. Asp.Net Jexus 发布和部署:http://www.cnblogs.com/savorboard/p/dot-n
-
Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署的实现
前言 Docker一直很火热,一直想把原本的Jenkins自动部署工具搬到Docker上面,无奈今年一直忙于各种事情,迟迟未实施这个事情,正好迎来了dotnet core 2.0 的正式发布,升级项目的同时,顺便直接将Jenkins搬到Docker上.为什么要写这篇文章呢?因为找过相关的资料,大多数文章都是基于Ubuntu 安装.net core 又或者 GitLab 进行持续集成 自动部署等等等,并未有人尝试过Centos7.3 上部署 Jenkins 并且 构建 ASP.NET CORE 2
-
ASP.NET Core+Docker+Jenkins实现持续集成的完整实例
前言 在前后端分离开发的项目当中为了避免重复构建发布,我们需要部署一个持续发布环境,而目前的开发环境服务器都是基于 CentOS 的,因此每次在本地发布之后还需要打包,上传,部署,十分繁琐.故这里采用了比较成熟的Jenkins 作为持续部署环境. 方法如下: 1.新建一个ASP.NET Core MVC应用程序: 需要勾选Docker支持 2.将其上传到git: 3.建立Jenkins任务 (1)选择"新建任务",输入任务名称,选择"自由风格项目",然后点击确定:
-
详解ASP.NET Core 网站在Docker中运行
Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署,到处运行. 本文介绍如何把ASP.NET Core网站部署在Docker中运行. 软件环境清单 CentOS 7.3.1611 Docker 1.12.6 .NET Core 1.1 安装Docker $ #安装Docker $ yum install docker $ #启动docker服务 $
-
ASP.NET Core 2.1 使用Docker运行的方法步骤
1.新建一个 ASP.NET Core 2.1 项目 然后运行一下项目,确保我们刚刚建立的项目可以正常运行. 2.编写 Dockerfile 新建一个文本文件,命名为 Dockerfile FROM microsoft/dotnet:2.1-aspnetcore-runtime WORKDIR /app COPY . . EXPOSE 80 ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"] 这里我们需要用到官方的镜像:mi
-
ASP.NET Core中预压缩静态文件的方法步骤
前言 Web应用程序的优化是非常重要,因为使用更少的CPU,占用更少的带宽可以减少项目的费用. 在ASP.NET Core中我们可以很容易的启用响应压缩,但是针对预压缩文件,就需要做一些额外的功能了. 这篇博客文章展示了如何在ASP.NET Core中预压缩静态文件. 下面话不多说了,来一起看看详细的介绍吧 为什么需要预压缩文件? 虽然在从服务器请求文件时, 我们可以动态压缩文件,但这意味这Web服务器需要做更多的额外工作. 其实只有在新的应用程序部署时才会更改要压缩的文件. 越好的压缩效果需要
-
ASP.NET Core整合Zipkin链路跟踪的实现方法
前言 在日常使用ASP.NET Core的开发或学习中,如果有需要使用链路跟踪系统,大多数情况下会优先选择SkyAPM.我们之前也说过SkyAPM设计确实比较优秀,巧妙的利用DiagnosticSource诊断跟踪日志,可以做到对项目无入侵方式的集成.其实还有一款比较优秀的链路跟踪系统,也可以支持ASP.NET Core,叫Zipkin.它相对于SkyWalking来说相对轻量级,使用相对来说比较偏原生的方式,而且支持Http的形式查询和提交链路数据.因为我们总是希望能拥有多一种的解决方
-
asp.net core 修改默认端口的几种方法
一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望 被框架所管制,那如何实现默认端口的修改呢? 骨架代码: public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder Cre
-
ASP.NET Core中Razor页面的Handlers处理方法详解
简介 在前一篇文章中,我们讨论了Razor页面.今天我们来谈谈处理方法(Handlers). 我们知道可以将代码和模型放在 .cshtml 文件里面或与 .cshtml 匹配的 .cshtml.cs 文件中. Razor页面处理程序或处理方法将用户请求匹配到我们的方法:请求来自 **.cshtml **文件. Razor页面遵循特定的命名约定.从上一篇文章可以看出,.NET Core开发工具自动生成了很多处理方法,例如下面这些: OnGet OnPost OnGetAsync OnPostAsy
-
SpringBoot创建Docker镜像的方法步骤
随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分.为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Docker 镜像的能力. 这篇文章的目的,就是为了给大家介绍如何为 Spring Boot 应用程序创建 Docker 镜像. 1. 传统Docker构建 使用Spring Boot 构建 Docker 镜像的传统方法是使用 Dockerfile .下面是一个简单的例子: FROM openjdk:8-j
-
通过Dockerfile构建Docker镜像的方法步骤
Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添加"\"的命令换行方式,以及行首"#"进行注释的格式. 使用Dockerfile构建Docker镜像时注意事项: (1).尽量选取满足需求但较小的基础系统镜像; (2).清理编译生成文件.安装包的缓存等临时文件; (3).安装各个软件时候要指定准确的版本号,并避免引入不
-
Asp.net core利用IIS在windows上进行托管步骤详解
摘要 最近项目中,尝试使用asp.net core开发,在部署的时候,考虑现有硬件,只能部署在windows上,linux服务器暂时没有.下面话不多说了,来一起看看详细的介绍吧. 部署注意事项 代码中启用iis和Kestrel public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[]
-
为ASP.NET Core强类型配置对象添加验证的方法
前言 本篇博客中,我将描述如何在ASP.NET Core程序启动时,确保强类型配置对象正确的绑定成功.通过使用IStartupFilter接口对象,你可以更早的验证你的配置对象是否绑定了正确的值,并不需要等待程序启动之后的某个时间点再验证. 这里我将简单描述一下ASP.NET Core的配置系统,以及如何使用强类型配置.我将主要描述一下如何去除对IOptions接口的依赖,然后我会描述一下强类型配置对象绑定不正确的问题.最后,我将给出一个在程序启动时验证强类型配置对象的方案. ASP.NET C
-
asp.net core系列之模型绑定和验证方法
一. 模型绑定 ASP.NET Core MVC 中的模型绑定,是将 HTTP 请求中的数据映射到 action方法参数. 这些参数可能是简单类型的参数,如字符串.整数或浮点数,也可能是复杂类型的参数. 当 MVC 收到 HTTP 请求时,它会将此请求路由定位到控制器的指定 action方法.默认路由模板为 {controller=Home}/{action=Index}/{id?} //例如:请求URL http://contoso.com/movies/edit/2 //映射到mo
随机推荐
- AngularJS实现动态添加Option的方法
- php仿微信红包分配算法的实现方法
- JavaScript面向对象编写购物车功能
- 基于Python闭包及其作用域详解
- php preg_match_all结合str_replace替换内容中所有img
- Laravel的throttle中间件失效问题解决方法
- PHP中strlen()和mb_strlen()的区别浅析
- 深入理解python函数递归和生成器
- python3 实现的人人影视网站自动签到
- 不能使用“;文件已在使用中 Microsoft JET Database Engine
- js中top的作用深入剖析
- 利用soaplib搭建webservice详细步骤和实例代码
- Ruby中的方法(函数)学习总结
- color 对于当前会话,更改命令提示窗口的前景和背景色
- JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
- 来自ImageSee官方 JavaScript图片浏览器 原创
- 简单的jquery拖拽排序效果实现代码
- jquery中JSON的解析方式
- Linux下非交互式提权详解
- java学习粗略路线的方法