Linux服务器下利用Docker部署.net Core项目的全过程

 更新时间:2019年07月08日 11:34:50   作者:傅小灰  
这篇文章主要给大家介绍了关于在Linux服务器下利用Docker部署.net Core项目的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

发布ASP.NET Core项目

和普通的项目发布一样,将项目发布到目标文件夹中

构建Dockerfile文件

在目标文件根目录新建Dockerfile文件(没有后缀)

FROM microsoft/dotnet//基于'microsoft/dotnet' 来构建镜像
COPY . /app //拷贝项目文件夹中的所有文件到docker容器中的app文件夹 这里是两个参数
WORKDIR /app //设置工作目录为 '/app' 文件夹,即容器启动默认的文件夹
EXPOSE 80 //设置Docker容器对外暴露80端口
CMD ["dotnet", "Core.Web.dll"] //使用'dotnet Core. Web.dll'来运行应用程序

上传项目文件

1.将项目构建为镜像

将文件上传到Linux的www目录下,使用命令构建成镜像

docker build -t testcore . //-t 指定镜像名 . 表示Dockerfile所在目录

注意 dockerfile中基于microsoft/aspnetcore或microsoft/dotnet来构建镜像(dotnet>aspnetcore)需要以服务器上安装的镜像版本做区分

构建成功,在镜像中可以看到新建的镜像


2.将镜像发布为容器

docker run --name testapp -d -p 8000:80 -v /www:/app testcore 
--name指定容器名称 
-d 指定容器后台运行 
-p 指定外部8000端口映射到容器80端口 
-v 绑定数据卷/www到容器内的/app (本地目录:容器内目录)本地目录必须为绝对路径
testcore镜像名

3.查看容器是否是否处于运行状态,若启动失败显示为exit,可查看日志

docker ps -a //查看所有容器的运行状态

docker exec -it testapp bash //若容器正在运行,进入容器内部
docker logs testapp//若容器未运行,查看报错日志

4.请求网站查看网站是否运行成功

curl 0.0.0.0:8000
curl -s -D - localhost:8000 -o /dev/null //查看请求返回信息

最后查看防火墙端口开放情况,以及阿里云后台安全组端口开放情况(如果你是用的阿里云服务),再通过外网访问瞅瞅

5.更新代码

由于在创建容器的时候映射了数据卷,则当有静态文件更新的时候,会自动更新到容器内。
但是当有dll文件更新时,需要手动重启一下容器

docker restart testapp

以上,实现了将一个Asp.Net Core MVC项目发布到docker中的全过程。目前容器中只有一个dotnet镜像,通过地址访问网站实际上直接访问的Kestrel服务器。

一些额外的想法

Kestrel服务器只是一个轻量级的web服务器,并且不支持基于主机名的绑定(如果1台服务器部署了多个 ASP.NET Core 站点,每个站点需要使用不同的端口)

出于安全性考虑(包括但不限于适当的超时,大小的限制,以及并发连接限制等问题)需要在Kestrel和Internet之间加入一个反向代理服务器(IIS,Nginx或者Apache)

下一篇,描述一下我在使用nginx转发请求给Kestrel时遇到的问题。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • .net 6 配置QuartZ定时任务的过程

    .net 6 配置QuartZ定时任务的过程

    这篇文章主要介绍了.net 6 配置QuartZ定时任务的过程,在VS2022中,通过Nuget包管理器安装Quartz 3.8.1 ,这是.net 6 依赖的最高版本,在此记录学习一下,需要的朋友可以参考下
    2024-04-04
  • ASP.NET 4中的可扩展输出缓存(可以缓存页面/控件等)

    ASP.NET 4中的可扩展输出缓存(可以缓存页面/控件等)

    ASP.NET 1.0引入输出缓存的概念,这使得开发者可以缓存页面、控件、控制器以及HTTP响应的输出到内存中,接下来详细介绍,感兴趣的朋友可以了解下
    2013-01-01
  • WPF实现简单的跑马灯效果

    WPF实现简单的跑马灯效果

    这篇文章主要为大家详细介绍了WPF实现简单的跑马灯效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 详解在ASP.NET Core下使用SignalR技术

    详解在ASP.NET Core下使用SignalR技术

    本篇文章主要介绍了在ASP.NET Core下使用SignalR技术 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 伪静态web.config配置步骤

    伪静态web.config配置步骤

    web.config是asp.net一个重要的配置文件,本文将介绍如何利用web.config配置伪静态,步骤很详细,需要了解的朋友可以参考下
    2012-12-12
  • asp.net微信开发(消息应答)

    asp.net微信开发(消息应答)

    这篇文章主要介绍了asp.net微信开发中有关消息应答的相关内容,需要的朋友可以参考下
    2015-11-11
  • 国产化之Arm64 CPU+银河麒麟系统安装.NetCore的步骤详解

    国产化之Arm64 CPU+银河麒麟系统安装.NetCore的步骤详解

    这篇文章主要介绍了国产化之Arm64 CPU+银河麒麟系统安装.NetCore,这里就以ARM架构举例,其它CPU平台的安装过程都一样,要下载的包不同而已,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • MVC默认路由实现分页(PagerExtend.dll下载)

    MVC默认路由实现分页(PagerExtend.dll下载)

    这篇文章主要介绍了MVC默认路由实现分页,采用bootstrap的样式,文末提供了PagerExtend.dll下载地址,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • ASP.NET实现Web网站本地化

    ASP.NET实现Web网站本地化

    这篇文章介绍了ASP.NET实现Web网站本地化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • ASP.NET连接SQL数据库的简单实例代码

    ASP.NET连接SQL数据库的简单实例代码

    这篇文章介绍了ASP.NET连接SQL数据库的简单实例代码,有需要的朋友可以参考一下
    2013-07-07

最新评论