.net core docker 部署

.net core项目部署在docker容器,本文开发工具Visual Studio 2019,操作系统centos 7.6
如docker还未安装可参考文章:docker介绍安装

1.创建站点

创建项目程序,并勾选启用docker支持

image.png

建成项目后,会生成dockerfile文件

image.png

如果创建项目时没有勾选启用docker支持,也可以在项目中添加dockerfile文件,在项目中右键选择“添加”选项下的“docker支持”,也可以使用“txt”重命名dockerfile文件

image.png

然后选择Linux系统:

image.png

2.编写dockerfile文件

自动生成dockerfile内容

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["DockerDemo.csproj", ""]
RUN dotnet restore "./DockerDemo.csproj"
COPY . .
WORKDIR "/src/."
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"]

如果不使用源码,使用部署包发布 build,publish命令可省略,本文采用部署包发布,
修改dockerfile文件如下:

# 环境运行时基础镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
#将当前目录内容 copy到镜像目录
COPY .  /dockerDemo
#设置工作目录
WORKDIR /dockerDemo
#对外暴露端口 
#(注:EXPOSE并不会让容器的端口访问到主机。
#要使其可访问,需要在docker run运行容器时通过-p来发布这些端口,
#或通过-P参数来发布EXPOSE导出的所有端口)
EXPOSE 80
EXPOSE 443
#运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "DockerDemo.dll"]

3.容器发布

1.构建镜像
项目发布后,将dockerfile文件拷贝到发布目录中,并将目录cd到部署目录,使用下面的命令构建镜像

#docker build -t <镜像名称> <目录> .为当前目录
docker build -t dockerdemo .
image.png

上诉步骤完成即创建成功,查看镜像是否成功创建

image.png

2.运行镜像
镜像构建完成后,使用以下命令来运行镜像容器

#docker run --name=<容器名称>  -d<后台运行> -p <外部暴露端口>:<容器端口> <关联镜像>
docker run --name=dockerdemo -d -p 8080:80 dockerdemo:latest

如下图成功执行,docker ps查看运行容器

image.png

3.访问页面验证是否发布成功

image.png

到此一个简单的容器发布就完成了

你可能感兴趣的:(.net core docker 部署)