ASP.NET Core: 二十八. 在Docker中的部署以及docker-compose的使用(三)

简介: 本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用。 系统环境为CentOS 8 。

七、Windows下开发

我们都知道,VisualStudio经常“贴心”的帮我们做好多事,例如Git的图形化操作。对于Docker也是如此。


若要在Windows环境下开发及调试Docker,可按下面步骤完成。


首先需下载并安装Docker Desktop


页面上有个图标:,点击下载。安装后右下角会有 图标,右键可以做一些设置。


它支持Windows和Linux两种主机


通过docker version 命令可以看出当前主机类型。也可以右键点击右下角的图标,有个Switch to ……的选项,可以知道当前主机类型,点击后切换到另一种类型。


命令切换:C:\Program Files\Docker\Docker\DockerCli.exe -SwitchDaemon


解决方案启用Docker支持:


新建项目的时候,勾选启用Docker支持:

19.png

已有项目可以右键点击项目,添加Docker支持:

 20.png

两种方式都会要求选择主机类型是Windows还是Linux。

此时Visual Studio帮我们会在项目中添加一个名为Dockerfile的文件:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster 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"]

这个文件和上面例子中我们自己创建的优点不同,它包含了4个From,第一个和最后一个和我们自己创建的有点像,只是Visual Studio帮我们自动添加了SDK镜像的拉取、项目的编译、项目发布的过程。


这里用到了两个镜像,第一个From调用了微软官方的包含ASP.NET Core 3.0 的运行时版镜像。第二个From用到了包含.Net Core 3.0的SDK的镜像,因为我们需要对项目进行生成和发布操作。


通过添加Docker的支持,可以使用Visual Studio开发并将项目自动发布到Docker进行调试。但选择系统环境为Windows的时候速度很快,选择Linux的时候由于网络问题非常慢。网上有临时的解决方案。


如果多个项目想采用docker-compose管理,在上面添加docker支持的图中可以看到有一个“容器业务流程协调程序支持”, 添加它就会自动生成一个docker-compose.yml文件。


Docker-Compose主要用于当前主机中的docker的管理,对于多主机的集群管理,就需要Docker Swarm或者Kubernetes了。


目录
相关文章
|
6天前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
24 5
|
24天前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
35 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
14天前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
23 3
|
2月前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
开发框架 前端开发 .NET
ASP.NET Core 核心特性学习笔记「下」
ASP.NET Core 核心特性学习笔记「下」
|
开发框架 前端开发 中间件
ASP.NET Core 核心特性学习笔记「上」
ASP.NET Core 核心特性学习笔记「上」
|
SQL 机器学习/深度学习 Cloud Native
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
- 状态 - 自动变更检测 - 不查询删除和更新 - 并发
253 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
|
SQL Cloud Native 架构师
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记
- 关联数据加载 - 客户端与服务端运算 - 跟踪与不跟踪 - 复杂查询运算 - 原生 SQL 查询 - 全局查询筛选器
246 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记
|
Cloud Native 架构师
|
存储 开发框架 Cloud Native
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 基础与配置)--学习笔记
- 连接字符串 - 异步编程 - 日志 - DbContext池 - 类和配置表 - 属性和列配置 - 并发token - 索引
309 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 基础与配置)--学习笔记