.net6部署到linux上(CentOS )包括使用docker容器部署

本文介绍在Linux上配置.NET环境,包括添加Microsoft包存储库、安装SDK和运行时等。接着创建.NET6 MVC项目,进行修改端口、打包发布等操作,并测试项目在Linux上的运行情况。最后提供两种在Linux上运行项目并守护进程的方法,适合新手参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、先在linux上配置.net环境

添加 Microsoft 包存储库

安装 SDK

安装运行时

检查 SDK 版本可使用终端查看当前安装的 .NET SDK 版本。 打开终端并运行以下命令。

二、创建.net6 mvc项目 并发布

创建项目 

 修改默认端口

打包发布到文件夹

 运行打包项目查看项目是否ok

 将项目放到linux上

测试项目在linux上是否有问题 

如何开放端口

 三、在linux上运行项目并守护进程

第一种方法(守护进程管理器)

 第二种方法(使用nohup &命令)


一、先在linux上配置.net环境

首先,先配置.net6环境

添加 Microsoft 包存储库

安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

安装 SDK

.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

sudo yum install dotnet-sdk-6.0

安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

sudo yum install aspnetcore-runtime-6.0

检查 SDK 版本
可使用终端查看当前安装的 .NET SDK 版本。 打开终端并运行以下命令。

复制
dotnet --list-sdks

看到sdk版本号就说明安装好了 

二、创建.net6 mvc项目 并发布

创建项目 

 修改默认端口

builder.WebHost.UseUrls("http://*:5000");//单个设置

打包发布到文件夹

 在本地运行打包项目查看项目是否ok

 到打包的项目

dotnet 项目名.dll

运行成功! 

 

在浏览器查看ok

 将项目放到linux上

打开宝塔,将打包的.net项目文件全选择拖到服务器文件夹上面

测试项目在linux上是否有问题 

 点击终端输入 : dotnet WebApplication2.dll  运行

运行:

dotnet 项目名.dll

显示这样就说明我们的项目在linux上也没问题,记得把端口开发才行

如何开放端口

这里提前开发5001端口给项目端口使用

1.开启防火墙

 systemctl start firewalld

2.开放指定端口
命令含义:
--zone #作用域
--add-port=5001/tcp  #添加端口,格式为:端口/通讯协议
--permanent  #永久生效,没有此参数重启后失效
     firewall-cmd --zone=public --add-port=5001/tcp --permanent

3、重启防火墙
firewall-cmd --reload
4、查看端口号
netstat -ntlp   //查看当前所有tcp端口·

netstat -ntulp |grep 5001//查看所有5001端口使用情况·

 三、在linux上运行项目并守护进程

第一种方法(守护进程管理器)

这种方法很简单,比较适合新手,

 下载守护进程管理器,点击设置

 

 点击添加守护进程

 

 填写信息

点击确定后可以看到我们添加成功了 

 

去浏览器输入ip加域名,测试是否成功!

 可以看到第一种方法成功了

注:有一些不同平台的服务器要去打开安全组,例如腾讯云,本案例是京东云

 第二种方法(使用nohup &命令)

到项目目录下执行运行下面的命令就可以了 

--urls="http://*:5001"*指定到开发端口(不指定也行,不指定就是默认的)

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行

nohup dotnet socialnetworkApp.dll --urls="http://*:5001"&  

  第三种方法(使用docker容器直接部署)

这里默认读者已经安装好docker,并且运行了。

使用宝塔将vs发布后的文件放到一个文件夹中,并创建Dockerfile文件定义镜像构建规则(如基础镜像、复制文件、暴露端口等))。

vim Dockerfile  # 输入以下内容,按 `i` 编辑,`Esc` + `:wq` 保存退出  

在当前发布文件目录下。 

 构建镜像,-t newswebsiteapp:为镜像指定标签(tag)。这里创建名为 newswebsiteapp 的镜像,

sudo docker build -t newswebsiteapp .

运行结果: 

docker images  # 查看本地所有镜像

 运行:

 

 运行容器,

sudo docker run -d -p 9800:80 newswebsiteapp

docker run :用于创建并启动容器的基础命令

-d :也是detachd模式,让容器在后台运行

-p 9800:80 :进行端口映射操作,将当前服务器的9800端口映射到容器内部的80端口。这样在网就能通过http://主机IP:9800 来访问容器内运行服务了。

newswebsiteapp:指定要使用的镜像名称,容器会依据这个镜像来创建。

访问端口,正常运行项目:

 

总结: 好了目前小编就知道这三种简单的方式,小编也是小菜鸡哈哈哈,欢迎大家交流

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值