.NET Core项目部署到Windows系统Docker
1、新建一个ASP.NET Core Web应用(模型-视图-控制器)

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

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"]
设置dockerfile文件属性 -【复制到输出目录】:始终复制

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>
5、右击项目重新生成解决方案无误后,在Release模式下,发布项目到本地文件夹

准备发布

6、在发布文件夹下,更改dockerfile文件如下
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY . .
ENTRYPOINT ["dotnet", "dockerdemo.dll"]
dockerfile文件指令说明:
- FROM -指定所创建镜像的基础镜像
- WORKDIR-配置工作目录
- EXPOSE-声明镜像内服务监听的端口
- COPY-复制内容到镜像
- ENTRYPOINT-启动镜像的默认人口命令
7、在发布文件夹直接右键在Windows Terminal(PowerShell)中打开,或者在cmd中通过命令进入到发布文件夹目录

8、 创建镜像
在第7步下输入如下命令,创建docker images
docker build -t dockerdemoimg .
参数分解:
- -t ---指定镜像名称
- 命令结尾处 . ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件

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

10、 绑定端口、创建并启动查看容器
docker run --name=dockerdemo -p 2022:80 -d dockerdemoimg
参数说明
- --name 指定容器的名称。当然可以不指定,默认会为我们创建
- -p 外部端口与内部容器端口映射
- -d 表示在后台以守护态(daemonized)形式运行容器
- 最后一个参数 dockerdemoimg 就是我们刚创建的镜像名称
11、打开浏览器,验证部署
打开浏览器,访问http://localhost:2022/,看到如下图则说明部署访问成功,恭喜自己一下吧!

以上就是.NET Core项目部署到Windows系统Docker的介绍,做此记录,如有帮助,欢迎点赞关注收藏!
.NET Core项目部署到Windows系统Docker的更多相关文章
- ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统
一.创建项目 本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上.这里以ASP.NET Core WebApi为例进行讲解.首先创建一个ASP.NET Core We ...
- .NET core 项目部署在windows 服务器方法以及iis 访问报 500.19错误的解决办法
将本地发布的服务本地运行没问题,发布上云windows 服务器就报 500.19 0x8007000d 是因为云服务器没有安装.net core相关的插件,比如.NET CORE sdk等,请按照该文 ...
- teprunner测试平台部署到Linux系统Docker
本文是一篇过渡,在进行用例管理模块开发之前,有必要把入门篇开发完成的代码部署到Linux系统Docker中,把部署流程走一遍,这个过程对后端设计有决定性影响. 本地运行 通过在Vue项目执行npm r ...
- .NET Core跨平台:.NET Core项目部署到linux(Centos7)
1.开篇说明 a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结,地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么这 ...
- NET Core项目部署
NET Core项目部署到linux(Centos7) 阅读目录 1.开篇说明 2.Jexus简单说明 3.Visual Studio 2015本地发布并且测试 4.配置Jexus并且部署.NET C ...
- .netcore项目部署到linux的docker里后,速度异常的慢
.netcore项目部署到linux的docker里后,速度异常的慢,部署在iis下速度非常快. 特别是 接口里再调用其他接口,那速度绝对是蜗牛爬行的速度. 经过几个月的折腾,终于知道是什么问题了: ...
- .Net Core 项目部署IIS简单步骤
1.新建一个解决方案: 我习惯会把运行文件移至一级目录 然后清除CoreTest 文件夹里面的文件 2.在解决方案中新建一个项目 点击确认有,这里有几种选择类型,我一般选择空类型(这里需要注意一下,空 ...
- Windows下docker的安装,将ASP.NET Core程序部署在Linux和Docker中
参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html docker for windows下载连接: htt ...
- .NET Core项目部署到Linux(Centos7)(一)前言
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- .NET Core项目部署到Linux(Centos7)(六)发布.NET Core 项目到Linux
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
随机推荐
- .NET复习总纲
以下是自己学习遇到比较好的课程和学习网站,如果大家有更好的课程推荐,可以打在评论区或者私聊我,让我也进行学习和补充进文档 一..NET基础 官方文档:https://learn.microsoft.c ...
- Shell脚本--信号发送与捕捉
信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相 应的处理函数. 进程可以通过三种方式来响应一个信号: 忽略信号,即对信号不做任何处理,其中有两个信号不能忽 ...
- Kubernetes_k8s持久化存储(亲测可用)
一.前言 新建具有两个节点的k8s集群,主节点(master节点/m节点)的ip地址是192.168.100.150,从节点(w1节点)的ip地址是192.168.100.151. 本文操作如何将po ...
- 基于python的数学建模---多模糊评价
权重 ak的确定--频数统计法 选取正整数p的方法 画箱形图 取1/4与3/4的距离(IQR) ceil()取整 代码: import numpy as np def frequency(mat ...
- Day17.1:静态与非静态的详解
静态与非静态 静态方法--类方法 是以static为关键词,从属于类,与类共生 public class Students{//class修饰的是一个类,所以这是一个学生类 public static ...
- git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
当我们拿到一天别人用的电脑,里面是上一位前辈的git ssh key,这时候我们要自己改,改完之后上传代码到远程repository时, 可能会报git@github.com: Permission ...
- day31 1 tomcat介绍与创建web项目 & 2 继承HttpServlet类、配置webxml全局配置文件 & 3 servlet生命周期 & 4 请求对象HttpServletRequest与响应对象HttpServletResponse
Servlet Java Servlet是运行在Web服务器或应用服务器上的程序,作为客户端(Web浏览器或其他HTTP客户端)和服务端(HTTP服务器上的数据库或应用程序)之间的中间层. 使用Ser ...
- Go语言Golang DevOps运维开发实战
Go语言Golang DevOps运维开发实战 提高运维意识.从下到上,从上到下的工作都要做好,对上运维工作的价值和含金量可以得到认可,对下我们的工作能够提高效率解放运维.运维意识是很重要,并不是你技 ...
- STL list容器API
list容器:链表容器,不支持随机遍历.不能用通用的sort算法(要有随机访问迭代器),容器自己有排序算法 #define _CRT_SECURE_NO_WARNINGS #include<io ...
- Hadoop详解(04)-Hdfs
Hadoop详解(04)-Hdfs HDFS概述 HDFS产出背景及定义 背景:随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需 ...