214  
查询码:00000658
.NET Core应用发布至Docker
作者: 潘帅 于 2020年03月09日 发布在分类 / 人防组 / 人防后端 下,并于 2020年03月09日 编辑
Docker NET Core

.NET Core的优势之一就是跨平台特性,而Docker容器化技术更能充分利用这一特性,在目前的Visual Studio版本中可以方便的讲.NET Core应用部署至Dokcer容器。


1.编译.NET Core项目

使用Visual Studio打开代码解决方案,在已有的.NET Core项目上右键选择“添加>Docker支持”。

在显示的窗口中勾选Docker文件选项,根据目标操作系统的类型勾选Windows或Linux。

如果需要在本地环境进行测试,可以提前在本地计算机安装桌面版Docker。在安装Docker的前提下,系统会提示是否启动Docker-Desktop(如果已经启动了就不会有这个提示)。


注意:如果在创建代码项目时已经勾选Docker支持,可以直接跳到下一步。

2.编辑Dockerfile

项目中被自动添加一个Dockerfile文件,用于快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。


#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

#基本镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
#工作目录
WORKDIR /app
#端口号
EXPOSE 80

#基础镜像版本
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
#复制文件至镜像的文件系统
COPY ["src/AbpDemo.Web/AbpDemo.Web.csproj", "src/AbpDemo.Web/"]
COPY ["src/AbpDemo.EntityFrameworkCore/AbpDemo.EntityFrameworkCore.csproj", "src/AbpDemo.EntityFrameworkCore/"]
COPY ["src/AbpDemo.Core/AbpDemo.Core.csproj", "src/AbpDemo.Core/"]
COPY ["src/AbpDemo.Application/AbpDemo.Application.csproj", "src/AbpDemo.Application/"]
RUN dotnet restore "src/AbpDemo.Web/AbpDemo.Web.csproj"
COPY . .
WORKDIR "/src/src/AbpDemo.Web"
RUN dotnet build "AbpDemo.Web.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "AbpDemo.Web.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "AbpDemo.Web.dll"]
dockerfile主题内容一般分为4部分:基础镜像信息,维护者信息使用label指令,镜像操作指令,容器启动时执行指令
FROMmcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS baseWORKDIR/appEXPOSE80COPY. .ENTRYPOINT["dotnet", "AA.Mvc.dll"]

dockerfile文件指令说明:
FROM -指定所创建镜像的基础镜像
WORKDIR-配置工作目录
EXPOSE-声明镜像内服务监听的端口
COPY-复制内容到镜像
ENTRYPOINT-启动镜像的默认人口命令



之后将dockerfile文件属性设置为“始终复制”,点击项目右键菜单“发布”,将项目发布到本地目录。

3.构建Docker镜像

在项目发布目录打开cmd或PowerShell,输入命令开始构建Docker镜像


docker build -t xxxxxx .


注意:后面有一个“.”点号



4.创建并启动Docker镜像实例

加载已构建完成的镜像,执行命令创建并启动镜像实例。

docker run -d -p 8088:8088 -name demoapi xxxx



 推荐知识

 历史版本

修改日期 修改人 备注
2020-03-09 16:24:19[当前版本] 潘帅 1.0

 附件

附件类型

PNGPNG

知识分享平台 -V 4.8.7 -wcp