.NET Core项目部署到Windows系统Docker

简介: .NET Core项目部署到Windows系统Docker

1、新建一个ASP.NET Core Web应用(模型-视图-控制器)

image.gif

2、 项目启动Docker、Docker OS选择Windows

image.gif

3、系统默认的dockerfile文件如下

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["dockerdemo/dockerdemo.csproj", "dockerdemo/"]
RUN dotnet restore "dockerdemo/dockerdemo.csproj"
COPY . .
WORKDIR "/src/dockerdemo"
RUN dotnet build "dockerdemo.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "dockerdemo.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "dockerdemo.dll"]

image.gif

设置dockerfile文件属性 -【复制到输出目录】:始终复制

image.gif

4、更改下主页文件(Index.cshtml)显示(此步骤可忽略,纯属作者测试显摆)

@{
    ViewData["Title"] = "Home Page";
}
<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <h1 class="display-4">Congratulations, for publishing your project to docker and seeing this page in your browser.</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>

image.gif

5、右击项目重新生成解决方案无误后,在Release模式下,发布项目到本地文件夹

image.gif

准备发布

image.gif

6、在发布文件夹下,更改dockerfile文件如下

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY . .
ENTRYPOINT ["dotnet", "dockerdemo.dll"]

image.gif

dockerfile文件指令说明:

    • FROM -指定所创建镜像的基础镜像
    • WORKDIR-配置工作目录
    • EXPOSE-声明镜像内服务监听的端口
    • COPY-复制内容到镜像
    • ENTRYPOINT-启动镜像的默认人口命令

    7、在发布文件夹直接右键在Windows Terminal(PowerShell)中打开,或者在cmd中通过命令进入到发布文件夹目录

    image.gif

    8、 创建镜像

    在第7步下输入如下命令,创建docker images

    docker build -t dockerdemoimg .

    参数分解:

      • -t ---指定镜像名称
      • 命令结尾处 . ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件

      image.gif

      如上图即创建成功

      9、可以通过命令或直接在Docker Desktop上看到刚创建成功的镜像

      image.gif

      10、 绑定端口、创建并启动查看容器

      docker run --name=dockerdemo -p 2022:80 -d dockerdemoimg

      参数说明

        • --name 指定容器的名称。当然可以不指定,默认会为我们创建
        • -p 外部端口与内部容器端口映射
        • -d 表示在后台以守护态(daemonized)形式运行容器
        • 最后一个参数 dockerdemoimg 就是我们刚创建的镜像名称

        image.gif 11、打开浏览器,验证部署

        打开浏览器,访问http://localhost:2022/,看到如下图则说明部署访问成功,恭喜自己一下吧!

        image.gif

        以上就是.NET Core项目部署到Windows系统Docker的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

        目录
        相关文章
        |
        2月前
        |
        开发框架 .NET 开发者
        简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
        Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:&lt;https://github.com/khellang/Scrutor&gt;
        60 5
        |
        1月前
        |
        监控 搜索推荐 开发工具
        2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
        2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
        134 2
        2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
        |
        2月前
        |
        开发框架 算法 中间件
        ASP.NET Core 中的速率限制中间件
        在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
        63 1
        |
        3月前
        |
        安全 Windows
        【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
        通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
        103 32
        |
        3月前
        |
        开发框架 .NET C#
        在 ASP.NET Core 中创建 gRPC 客户端和服务器
        本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
        64 5
        在 ASP.NET Core 中创建 gRPC 客户端和服务器
        |
        3月前
        |
        存储 负载均衡 Java
        如何配置Windows主机MPIO多路径访问存储系统
        Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
        194 13
        如何配置Windows主机MPIO多路径访问存储系统
        |
        2月前
        |
        开发框架 缓存 .NET
        GraphQL 与 ASP.NET Core 集成:从入门到精通
        本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
        59 3
        |
        2月前
        |
        负载均衡 网络协议 算法
        Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
        本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
        126 3
        |
        3月前
        |
        存储 Linux Docker
        centos系统清理docker日志文件
        通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
        327 2
        |
        4月前
        |
        Windows
        .NET 隐藏/自定义windows系统光标
        【10月更文挑战第20天】在.NET中,可以使用`Cursor`类来控制光标。要隐藏光标,可将光标设置为`Cursors.None`。此外,还可以通过从文件或资源加载自定义光标来更改光标的样式。例如,在表单加载时设置`this.Cursor = Cursors.None`隐藏光标,或使用`Cursor.FromFile`方法加载自定义光标文件,也可以将光标文件添加到项目资源中并通过资源管理器加载。这些方法适用于整个表单或特定控件。

        热门文章

        最新文章