ASP.NET Core Docker 部署 Dockerfile
原文:https://blog.csdn.net/KingCruel/article/details/113780977
1、新建 ASP.NET Core Web 应用程序
2、发布
3、导航到【发布文件夹】,新建一个【Dockerfile】文件【没有后缀】
# Dockerfile 分为四部分
基础镜像信息:FROM
维护者信息:MAINTAINER
镜像操作指令:RUN,ADD,COPY......
容器启动时执行命令:CMD,ENTRYPOINT
如果是编译发布好的格式如下
# Step 1:创建 Dockerfile 文件
# 设置(使用)基础运行时镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
# FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
# FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
# FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
# FROM centos:centos7.5.1804
# 作者信息
MAINTAINER ZhangSan "zhangsan@163.com"
####
# FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
# FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
# FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
# 设置工作目录
WORKDIR /app
# 暴露80端口,通过-P参数来发布EXPOSE导出的所有端口
EXPOSE 80
EXPOSE 443
# 把目录下的内容都复制到当前目录下
COPY . .
# 运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "DockerProject.dll"]
4、Docker 操作,导航到【发布文件夹】,输入 cmd
# Step 2:创建、构建镜像
# 创建镜像,注意后边的那个.
docker build -t netcore31v0210 .
# 查看镜像
docker images
# Step 3:创建并运行容器
run 命令:创建一个新的容器,并运行一个命令
创建基于该镜像的docker容器,并启动
docker run --name=<容器名称> -d<后台运行> -p <宿主机端口>:<容器端口> <关联镜像>
docker run --name=container5 -itd -p 8082:80 netcore31v0210
docker run --name=container4 -it -p 8079:80 netcore31v0210
docker run --name=container1 -d -p 8076:80 netcore31v0210
docker run --name=container2 -d -p 8077:80 netcore31v0210
docker run --name=container3 -d -p 8078:80 netcore31v0210
5、浏览器访问
打开浏览器,地址栏输入http://localhost:8079/weatherforecast
6、Dockerfile 源码构建镜像
ASP.NET Core Web API 项目结构
# Step 1:本地创建 Dockerfile 文件【Visual Studio 2022 项目右键,可以直接添加Dockerfile文件】
# Step 2:Linux服务器源码路径
# Step 3:把 Dockerfile 文件拷贝到 Linux 服务器部署文件的根目录,Dockerfile 文件内容如下
注意:把 Dockerfile 文件拷贝到 Linux 服务器部署文件的根目录
#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/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["Grade1Class1/Grade1Class1.csproj", "Grade1Class1/"]
RUN dotnet restore "Grade1Class1/Grade1Class1.csproj"
COPY . .
WORKDIR "/src/Grade1Class1"
RUN dotnet build "Grade1Class1.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Grade1Class1.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Grade1Class1.dll"]
Dockerfile 文件关键信息
# Step 4:创建、构建镜像
# 跳转到部署文件的根目录
cd /home/king/dotnet/20221123/DockerProject
# 注意后边的 .
# 执行 build 命令,生成一个镜像文件,镜像名称叫做【net3v1123:2221】
docker build -t net3v1123:2221 -f Dockerfile .
# -t 标签
# 查看镜像
docker images
# 执行 run 命令,创建并运行容器,注意上边的镜像名称使用的是【net3v1123:2221】
docker run -itd -p 8076:80 --name docker8076 net3v1123:2221
# 查看容器
docker ps
镜像、容器信息
# Step 5:浏览器访问
打开浏览器,地址栏输入http://localhost:8076/weatherforecast
————————————————
版权声明:本文为CSDN博主「KingCruel」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/KingCruel/article/details/113780977
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
2022-06-13 Elastic Search 入门