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了。


目录
相关文章
|
10天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
3月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
68 0
|
3月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
37 0
|
1月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(持续更新)
C#/.NET/.NET Core拾遗补漏合集(持续更新)
|
1月前
|
开发框架 中间件 .NET
C# .NET面试系列七:ASP.NET Core
## 第一部分:ASP.NET Core #### 1. 如何在 controller 中注入 service? 在.NET中,在ASP.NET Core应用程序中的Controller中注入服务通常使用<u>依赖注入(Dependency Injection)</u>来实现。以下是一些步骤,说明如何在Controller中注入服务: 1、创建服务 首先,确保你已经在应用程序中注册了服务。这通常在Startup.cs文件的ConfigureServices方法中完成。例如: ```c# services.AddScoped<IMyService, MyService>(); //
60 0
|
2月前
|
开发框架 前端开发 .NET
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。
32 1
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
|
2月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
运维 Kubernetes 前端开发
【云原生】阿里云服务器部署 Docker Swarm集群
阿里云服务器 一键部署 Docker Swarm 集群!
528 0
【云原生】阿里云服务器部署 Docker Swarm集群
|
弹性计算 Linux Shell
阿里云一键部署 Docker Datacenter
使用阿里云ROS一键部署Docker Datacenter
12218 1
|
弹性计算 Shell Docker
阿里云一键部署 Docker Datacenter
使用ROS模板在阿里云上一键部署Docker Datacenter
7713 0