美文网首页
.net core docker 部署

.net core docker 部署

作者: booker丶 | 来源:发表于2020-06-15 14:55 被阅读0次

    .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 部署

          本文链接:https://www.haomeiwen.com/subject/tzycxktx.html