asp.net core框架搭建4-部署IIS/Nginx/Docker

文章目录

  • 系列文章
  • 一、Linux上部署Nginx
    • 1.1 Centos 安装配置环境
    • 1.2 使用Systemctl 控制Nginx
  • 二、部署IIS
  • 三、部署Docker
    • 3.1 创建 Dockerfile 文件
    • 3.2 构建 Docker 镜像
    • 3.3 运行 Docker 容器
    • 3.4 检查容器运行情况
  • 结束语

作者:xcLeigh

文章地址:https://blog.csdn.net/weixin_43151418/article/details/131459091


asp.net core框架搭建4-部署IIS/Nginx/Docker ,下面让咋们一起来部署webapi到IIS和nginx/Docker,将一步步带着大家,实现目标。所有操作过程将展现在本篇文章,下面咋们一起来实现它吧。

系列文章

一、Linux上部署Nginx

项目使用的是 - asp.net core 框架搭建1-搭建webapi ,这篇文章的项目打包。

1.1 Centos 安装配置环境

复制代码
//第一步 安装nginx
yum install -y nginx

//第二步 安装asp.net core运行包
yum install -y aspnetcore-runtime-6.0.x86_64 

//第三步 设置nginx开机自启动
systemctl enable nginx

//第四步 打开防火墙端口
firewall-cmd --add-port=80/tcp --permanent    //命令永久打开

//第五步 运行dotnet应用
 dotnet Webapi.dll  --urls="http://*:5000"

1.2 使用Systemctl 控制Nginx

复制代码
//启动nginx服务
systemctl start nginx

//停止服务
systemctl stop nginx

//重新启动服务
systemctl restart nginx

//查看所有已启动的服务
systemctl list-units --type=service

//查看服务当前状态
systemctl status nginx

//设置开机自启动
systemctl enable nginx

//停止开机自启动
systemctl disable nginx

二、部署IIS

项目使用的是 - asp.net core 框架搭建1-搭建webapi ,这篇文章的项目打包。

1 安装IIS和Net6 runtime bundle.exe (包括了runtime和iis支持)

2 复制发布的文件文件到网站目录

3 添加上传ssl证书或者使用iis创建自定义证书

4 在iis去除勾选ssl,绑定ssl端口到网站,并配置iis证书

5 测试,输入http://url会直接302跳转到https://url

三、部署Docker

项目使用的是 - asp.net core 框架搭建1-搭建webapi ,这篇文章的项目打包。

3.1 创建 Dockerfile 文件

在ASP.NET Core 项目的根目录下创建一个名为Dockerfile的文件。这个文件用于定义 Docker 镜像的构建规则。

基本内容示例:

dockerfile 复制代码
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["YourProject.csproj", ""]
RUN dotnet restore "./YourProject.csproj"
COPY..
WORKDIR "/src/YourProject"
RUN dotnet build "YourProject.csproj" -c Release -o /app/build

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish.
ENTRYPOINT ["dotnet", "YourProject.dll"]

解释:

  • 第一部分(FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base):以ASP.NET Core 运行时镜像为基础镜像,版本为 7.0。WORKDIR /app设置工作目录为/app,EXPOSE 80和EXPOSE 443表示容器内部的应用将在这两个端口上监听。
  • 第二部分(FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build):以ASP.NET Core SDK 镜像为基础进行构建。首先设置工作目录为/src,然后复制项目文件(COPY ["YourProject.csproj", ""]),运行dotnet restore来恢复项目依赖。接着复制整个项目目录(COPY...),并构建项目(RUN dotnet build),输出到/app/build目录。
  • 第三部分(FROM build AS publish):从构建阶段继承,发布项目到/app/publish目录。
  • 第四部分(FROM base AS final):从最初的运行时基础镜像继承,将发布的文件复制到运行时容器的/app目录,并设置应用的入口点为dotnet YourProject.dll。

3.2 构建 Docker 镜像

打开命令行工具,导航到包含Dockerfile的项目目录。

运行命令docker build -t your - image - name:tag.,例如docker build -t myaspnetapp:latest.

这个命令会根据Dockerfile中的指令构建一个名为myaspnetapp,标签为latest的 Docker 镜像。构建过程可能需要一些时间,具体取决于项目的大小和网络速度,因为它需要下载基础镜像和相关的依赖。

3.3 运行 Docker 容器

构建好镜像后,可以通过命令docker run -d -p 8080:80 your - image - name:tag来运行容器。例如docker run -d -p 8080:80 myaspnetapp:latest

解释:

  • -d表示容器在后台运行(detached mode)。
  • -p 8080:80是端口映射,将主机的 8080 端口映射到容器内部的 80 端口。这样,当访问主机的 8080 端口时,请求会被转发到容器内应用监听的 80 端口。

3.4 检查容器运行情况

可以使用docker ps命令来查看正在运行的容器。它会显示容器的 ID、镜像名称、创建时间、状态等信息。

如果应用在容器内出现问题,可以通过docker logs container - id来查看容器的日志。将container - id替换为实际的容器 ID,日志信息可以帮助诊断应用启动或运行过程中的错误。

结束语

亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


💢 关注博主 带你实现畅游前后端

🏰 加入社区 带你体验马航不孤单

💯 神秘个人简介 带你体验不一样得介绍

💘 为爱表白 为你那个TA,体验别致的浪漫惊喜

🎀 酷炫邀请函 带你体验高大上得邀请


① 🉑提供云服务部署 (有自己的阿里云);

② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;

如🈶合作请联系我,期待您的联系。

:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有),https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏 ,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


原文地址:https://blog.csdn.net/weixin_43151418/article/details/131459091(防止抄袭,原文地址不可删除)

相关推荐
BullSmall33 分钟前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
ruofu3339 分钟前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
spider_xcxc2 小时前
Docker 实战:容器化多服务应用,Dockerfile 与 Compose 配置全解析
docker·云原生·eureka·虚拟化·容器化
晚风吹长发2 小时前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
ShiXZ2133 小时前
Docker Compose 安装与配置指南
运维·docker·容器
BullSmall4 小时前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
chexus5 小时前
21. 深入 Nginx HTTP 缓存源码:CDN功能
nginx·http·缓存
java_logo7 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
生活爱好者!20 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
java_logo21 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程