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

        目录
        相关文章
        |
        8天前
        |
        Linux 虚拟化 Docker
        Windows12安装Docker
        Windows12安装Docker
        38 2
        |
        19天前
        |
        C# Windows
        .NET开源免费的Windows快速文件搜索和应用程序启动器
        今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
        |
        19天前
        |
        存储 文字识别 C#
        .NET开源免费、功能强大的 Windows 截图录屏神器
        今天大姚给大家分享一款.NET开源免费(基于GPL3.0开源协议)、功能强大、简洁灵活的 Windows 截图、录屏、Gif动图制作神器:ShareX。
        |
        19天前
        |
        数据可视化 网络协议 C#
        C#/.NET/.NET Core优秀项目和框架2024年3月简报
        公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
        |
        19天前
        如何隐藏windows10系统任务栏右下角的语言输入法图标?
        如何隐藏windows10系统任务栏右下角的语言输入法图标?
        |
        1月前
        |
        安全 Linux Shell
        全面对比linux和windows,选择哪个系统比较好
        全面对比linux和windows,选择哪个系统比较好
        71 0
        |
        1月前
        |
        监控 Windows
        Windows系统中Wireshark抓包工具的安装使用
        Windows系统中Wireshark抓包工具的安装使用
        |
        4天前
        |
        人工智能 安全 机器人
        AI电销机器人系统源码部署:freeswitch安装Windows
        在Windows上安装FreeSWITCH:访问官网下载安装程序,运行并按提示安装;选择安装路径和组件;等待安装完成;配置FreeSWITCH,修改设置;启动服务;测试其功能;如遇问题,参考官方文档或进行调试故障排除。记得定期更新维护以保证稳定安全。
        |
        8天前
        |
        网络协议 安全 测试技术
        Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
        Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
        |
        8天前
        |
        存储 安全 文件存储
        Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
        Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
        Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件