.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的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

        目录
        相关文章
        |
        3月前
        |
        前端开发 JavaScript 关系型数据库
        使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
        使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
        103 0
        |
        6月前
        |
        安全 数据安全/隐私保护 Windows
        如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
        如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
        265 15
        如何在Windows 10系统中查看已连接WiFi密码-亲测可用-优雅草卓伊凡
        |
        6月前
        |
        关系型数据库 虚拟化 UED
        Omnissa Horizon Windows OS Optimization Tool 2503 - Windows 系统映像优化工具
        Omnissa Horizon Windows OS Optimization Tool 2503 - Windows 系统映像优化工具
        221 7
        Omnissa Horizon Windows OS Optimization Tool 2503 - Windows 系统映像优化工具
        |
        2月前
        |
        Ubuntu Linux Windows
        windows11系统安装ubuntu系统详细步骤
        安装后,您可以直接从商店启动应用程序来源
        451 0
        |
        4月前
        |
        Ubuntu Linux 数据安全/隐私保护
        Windows中安装WSL 2和Ubuntu系统的教程
        回看这一路,有趣吧?你已经跨界成为了一个Windows和Linux的桥梁。期待在代码的世界里,把一切玩得风生水起!
        201 13
        |
        3月前
        |
        持续交付 Windows
        如何使用Sysprep准备Windows系统并使用自动应答
        通过Sysprep准备Windows系统,可实现SID重置与系统定制。进入Sysprep后,可安装软件、设置默认桌面文件,并使用Windows SIM创建应答文件以实现自动化部署。适用于系统克隆与批量部署场景。
        |
        5月前
        |
        JSON 安全 数据可视化
        Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
        Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
        2099 0
        |
        6月前
        |
        SQL 小程序 API
        如何运用C#.NET技术快速开发一套掌上医院系统?
        本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
        196 0
        |
        7月前
        |
        算法 关系型数据库 测试技术
        WHQL微软驱动签名方案,让驱动程序在Windows系统流畅运行
        WHQL认证(Windows徽标认证)是微软设立的严格测试标准,旨在确保驱动程序的兼容性、稳定性和互通性。本文介绍了三种WHQL微软驱动签名方案:单系统签名、多系统签名和硬件兼容性测试方案,分别满足不同开发商的需求。通过WHQL认证,不仅能消除Windows安装警告,提升用户体验,还能获得“Designed for Windows”徽标授权,入列全球Windows Catalog及HCL产品表,提升品牌权威性和采购优先权。此外,访问微软OCA可获取错误反馈,助力产品质量改进。选择合适的签名方案,让驱动在Windows系统中流畅运行!
        |
        7月前
        |
        Windows
        Windows系统云服务器配置多用户登录
        本教程介绍了在Windows云服务器上配置远程桌面服务的详细步骤,包括安装桌面会话主机和远程桌面授权、允许多用户远程连接以及配置新用户并加入远程桌面用户组。通过添加角色和功能、设置组策略以及管理用户权限,实现多用户同时登录和远程访问。按照指引操作,可顺利完成服务器的远程访问配置,提升管理和使用效率。
        708 0