概要

本章详细介绍,.net Core 项目从打包到部署上华为云云服务器 Flexus X 实例的过程与一些细节问题。在这里我以 Ubuntu+Docker 构建并部署.NET 项目为实例作为展示。

Ubuntu 与 Docker 部署.NET 项目的影响:

1. 可移植性:Docker 容器可以在不同的操作系统和平台上运行,包括 Ubuntu。这意味着使用 Docker 部署的.NET 项目可以轻松地在不同的环境中迁移和部署,降低了跨平台部署的复杂性和成本。

2. 资源隔离:Docker 使用 Linux 内核的容器技术将应用程序及其依赖项隔离在一个独立的容器中,这有助于减少应用程序之间的资源争用和冲突,从而提高整体的系统性能和稳定性。

3. 易于管理:Docker 提供了一套完整的管理工具,可以方便地管理容器、镜像和网络等资源。这使得对.NET 项目的部署、监控和维护变得更加简单和高效。


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Ubuntu



云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_02

基本配置参考如下:


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_可移植性_03

其他配置按需求选择即可

连接服务器


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_可移植性_04

远程登录界面:


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_05

xshell 登录界面:

根据个人 ip 进行登录即可


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Ubuntu_06

Ubuntu 安装 docker


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_07


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_08


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Ubuntu_09


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Ubuntu_10

Rider 打包项目


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_可移植性_11


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_12

配置


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_13

 放置项目

将 Rider 打包好的文件压缩并放到服务器上


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_可移植性_14


编辑

解压包

unzip linux -x64.zip


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_15

安装 ICU 库来处理全球化和本地化的字符串

sudo apt-get install libicu-dev


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Ubuntu_16

更新并安装 sdk(版本根据个人需求即可)

sudo apt update  

sudo apt install dotnet-sdk-8.0


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Ubuntu_17

运行项目


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_Docker_18

使用 docker 部署 c#项目

在利用 Docker 部署项目时,我们无需 xshell 中手动安装 SDK,因为 SDK 和相关依赖可以通过 Dockerfile 中的指令在安装镜像时被自动包含和配置。这样做不仅简化了部署流程,还确保了项目运行环境的一致性和可移植性。

那个这个 Dockerfile 放置在文件夹下即可,不需要再通过上面方式进行文件夹打包直接将其放在其中即可


云服务器 Flexus X 实例|Ubuntu+docker 部署.NET 项目_可移植性_19

小结

在 Ubuntu 系统上利用 Docker 容器技术部署.NET Core 项目,不仅显著提升了项目的可移植性和资源隔离性,还极大地简化了部署流程,使项目的管理和维护变得高效而便捷。这种方法确保了项目在不同环境中的无缝迁移和稳定运行,降低了跨平台部署的复杂性和成本。