如何使用Docker将.Net6项目部署到Linux服务器(一)

这篇具有很好参考价值的文章主要介绍了如何使用Docker将.Net6项目部署到Linux服务器(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一 配置服务器环境

1.1 配置yum                                                                                                                    

1.1.1 更新yum包

1.1.2 yum命令

1.2 配置docker                                                                                                               

1.2.1 查看是否安装过docker rpm包

  1.2.2 安装docker

  1.2.3 启动docker

 1.2.4 设置Docker开机自启动

1.2.5 查看Docker是否运行 

 1.2.6 查看可用容器

 1.2.7 运行容器

1.2.8 暂停容器

 1.2.9 如何重启容器

1.2.10 停止容器

 1.2.11 删除容器

 1.3 安装.NetCore SDK6.0                                                                                             

1.3.1 安装包配置

1.3.2 执行安装

 1.3.3 验证Net6的安装环境

 1.4 安装MySql

 1.4.1 查看系统版本

 1.4.2 卸载MySql

1.4.3 安装MySql

1.4.4 启动MySql 

1.4.5 开启MySql端口


一 配置服务器环境

1.1 配置yum                                                                                                                    

在配置yum之前,我们需要先了解yum是什么,yum,是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。

yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。

yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。

它能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

1.1.1 更新yum包
sudo yum update

安装yum-utils 用来管理yum源代

sudo yum install -y yum-utils
1.1.2 yum命令

首先用yum来升级软件,yum的操作大都须有超级用户的权限,当然可以用sudo。装了系统添加删除软件是常事,yum同样可以胜任这一任务,只要软件是rpm安装的。

    安装命令

yum install xxx

    删除命令

yum remove xxx

    其他常用命令

1.yum check-update        列出所有可更新的软件清单
2.yum update             安装所有更新软件
3.yum -y install <package_name> 安装指定的软件
4.yum update <package_name>  更新指定的软件
5.yum list  <package_name>       不加<package_name>列出所有可安裝的软件清单,加了列出指定的
6.yum -y remove <package_name> 删除软件
7.yum search <package_name>   查找软件       
8.yum list installed   列出所有已安装的软件包
9.yum list extras    列出所有已安装但不在 Yum Repository 內的软件包
10.yum info <package_name>  不加<package_name>列出所有软件包的信息,加了列出指定的 
11.yum provides <package_name> 列出软件包提供哪些文件
12.yum clean packages 清除缓存目录(/var/cache/yum)下的软件包
13. yum clean all     清除缓存目录(/var/cache/yum)下的软件包及旧的headers

1.2 配置docker                                                                                                               

1.2.1 查看是否安装过docker rpm包
yum list installed | grep docker

如果之前安装过可以不用安装,如果想重新安装也可以,执行卸载老版本docker以及相关依赖即可

sudo yum remove docker docker-common container-selinux docker-selinux docker-engine
  1.2.2 安装docker
yum -y install docker-ce

如果出现 No package docker-ce available 错误,这里我们只需要设置稳定的仓库,添加yum源即可。

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

然后再执行安装Docker命令进行安装就可以了 。

  1.2.3 启动docker
sudo systemctl start docker
 1.2.4 设置Docker开机自启动
sudo systemctl enable docker

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

1.2.5 查看Docker是否运行 
systemctl status docker

docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-12-12 16:54:00 CST; 34s ago
     Docs: https://docs.docker.com
 Main PID: 26847 (dockerd)
   CGroup: /system.slice/docker.service
           └─26847 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Dec 12 16:53:59 iZ2ze6on3jy8afby5yaj0bZ systemd[1]: Starting Docker Application Container Engine...
Dec 12 16:53:59 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:53:59.341325810+08:00" le...up"
Dec 12 16:53:59 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:53:59.490260781+08:00" le...t."
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.172727029+08:00" le...ng"
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.261938793+08:00" le...e."
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.287876345+08:00" le...0.7
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.287988480+08:00" le...on"
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ dockerd[26847]: time="2023-12-12T16:54:00.316181097+08:00" le...ck"
Dec 12 16:54:00 iZ2ze6on3jy8afby5yaj0bZ systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

 1.2.6 查看可用容器

若要列出正在运行的容器,请使用 docker ps 命令

docker ps -a

需要查看前述输出中的以下三个项

  • IMAGE 列中列出的映像名称;在此示例中为 tmp-ubuntu: latest。 请注意,你可以从同一映像创建多个容器。 这是一种强大的管理功能,可用于在解决方案中实现缩放。

  • STATUS 列中列出的容器状态。 在本例中,一个容器正在运行,一个容器已退出。 容器的状态通常是容器运行状况的第一个指标。

  • NAMES 列中列出的容器名称。 除了第一列中的容器 ID 之外,容器还会接收名称。 在本例中,由于你没有为每个容器显式提供名称,因此,Docker 为容器提供了随机名称。 若要使用 --name 标志为容器提供显式名称,请使用 run 命令。

为什么要为容器命名

借助此功能,可运行同一映像的多个容器实例。 容器名称是唯一的,这意味着如果指定了某一名称,则不能重复使用该名称来创建新的容器。 重复使用特定名称的唯一方法是删除之前的容器

 1.2.7 运行容器

若要启动容器,请使用 docker run 命令。 只需按名称或 ID 指定要运行的映像,即可从映像启动容器。 通过此方式启动的容器提供交互式体验

docker run -d tmp-ubuntu
1.2.8 暂停容器

若要暂停容器,请运行 docker pause 命令

docker pause happy_wilbur
 1.2.9 如何重启容器

若要重启容器,请运行 docker restart 命令

docker restart happy_wilbur
1.2.10 停止容器

若要停止正在运行的容器,请运行 docker stop 命令

docker stop happy_wilbur
 1.2.11 删除容器

若要删除容器,请运行 docker rm 命令

docker rm happy_wilbur

 1.3 安装.NetCore SDK6.0                                                                                             

1.3.1 安装包配置
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
1.3.2 执行安装
sudo yum install dotnet-sdk-6.0
 1.3.3 验证Net6的安装环境
dotnet --info

 1.4 安装MySql

 1.4.1 查看系统版本
cat /etc/redhat-release
 1.4.2 卸载MySql

查看系统是否已经安装过MySql

rpm -qa | grep mysql

卸载MySql

rpm -e --nodeps 软件名

查找MySql文件,并将其删除

find / -name mysql
whereis mysql

 将find命令和whereis命令查询到的mysql文件全部删除

rm -rf 查询到的mysql路径

删除mysql配置文件

rm /etc/my.cnf

确认是否全部删除mysql

rpm -qa | grep -i mysql

查看是否有安装 mariadb,该软件与 MySQL 数据库有冲突,需要手动卸载

rpm -qa | grep mariadb

移除MySql相关的软件

rpm -e --nodeps community-common-8.0.31-1.el8.x86_6

如果出现包移除失败时,error: package –-nodeps is not installed

看了一下 rpm的参数表,发现这个 nodeps 应该是 no depends 的缩写,于是乎,有点儿顿悟,莫非是要删除的模块没有依赖?
去掉这个参数

rpm -e mysql-community-common-8.0.31-1.el8.x86_6
1.4.3 安装MySql

安装MySql需要在MySql官网查看Mysql安装包。找到MySQL Community Server

选择 MySQL 的版本

注意 MySQL 的版本需要与 Linux 的版本对应上

centos7 系统对应的 MySQL 是 el7
centos8 系统对应的 MySQL 是 el8
一般情况下,直接选择第一个安装包即可,第一个安装包的版本会不定时的更新,与本文所用的安装包有略微的差别,但是并不影响具体的使用

下载安装包

cd /usr/local
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar

等待下载完成,查看下载后的文件

ll

如何使用Docker将.Net6项目部署到Linux服务器(一),linux,docker,运维

解压

解压之后会有很多包产生,为了方便查看,将其解压到 /usr/local/mysql_package 里面

mkdir /usr/local/mysql_package
cd /usr/local/mysql_package
tar -xvf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar -C /usr/local/mysql_package

如何使用Docker将.Net6项目部署到Linux服务器(一),linux,docker,运维

使用rpm安装

必须按照顺序执行命令,否则会出现依赖错误的报错

rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm

常见错误总结

未按照规定顺序安装软件

按照顺序安装即可解决

 openssl 缺失

 安装 openssl-devel 即可解决

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm

使用 yum install openssl-devel -y 安装 openssl-devel

yum install openssl-devel -y

 perl 和 libaio 缺失

安装 prel 和 libaio 即可解决

yum list perl
yum install -y perl.x86_64

查看与 libaio 相关的软件

yum list libaio

 安装

yum install -y libaio*

libc.so.6 缺失

大概率是因为下载的 MySQL版本与 Linux 版本对应不上,可以检查一下 MySQL 压缩包后缀名里面的参数是否与系统版本匹配

  • centos7 系统对应的 MySQL 是 el7
  • centos8 系统对应的 MySQL 是 el8
1.4.4 启动MySql 

启动MySql服务

systemctl start mysqld

获取首次启动生成的随机密码

sudo grep 'temporary password' /var/log/mysqld.log

登录mySql并修改密码

mysql -uroot -p

更新密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPwd123';

开启允许root账户远程连接

# 切换使用mysql数据库
use mysql;
# 开启远程
update user set host='%' where user='root'; 
# 刷新权限
flush privileges;

退出mysql

quit;
1.4.5 开启MySql端口

开启防火墙端口允许访问

#查看防火墙状态
systemctl status firewalld 
#查看开放的端口
firewall-cmd --query-port=3306/tcp
#添加端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 
#重载防火墙
firewall-cmd --reload 
#再次查看端口是否已经开放
firewall-cmd --query-port=3306/tcp

 systemctl status firewalld   查看防火墙状态

如何使用Docker将.Net6项目部署到Linux服务器(一),linux,docker,运维

firewall-cmd --query-port=3306/tcp 查看开放的端口

如何使用Docker将.Net6项目部署到Linux服务器(一),linux,docker,运维

firewall-cmd --zone=public --add-port=3306/tcp --permanent  添加端口

如何使用Docker将.Net6项目部署到Linux服务器(一),linux,docker,运维

 firewall-cmd --reload 重载防火墙

如何使用Docker将.Net6项目部署到Linux服务器(一),linux,docker,运维

firewall-cmd --query-port=3306/tcp 再次查看端口是否已经开放

如何使用Docker将.Net6项目部署到Linux服务器(一),linux,docker,运维

设置mySql开启自启文章来源地址https://www.toymoban.com/news/detail-757403.html

systemctl enable mysqld

到了这里,关于如何使用Docker将.Net6项目部署到Linux服务器(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux 部署 net6 应用程序(宝塔版)

    首先在VS2022上面把应用编译成linux 上的运行文件! 然后通过上传到指定目录,也用过宝塔的坑定会。 依照官网的操作。我的是CentOS 7,谁叫8不支持了呢。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并

    2024年02月07日
    浏览(41)
  • centos系统把.net6 web api部署到docker

    一台centos 8.0 版本以上的linux系统,建议用百度的云服务器;不仅可以反复重装,还可以重装其它的操作系统;主要是对新用户还便宜;实在不想花钱,那就自己在虚拟机中装一个centos vs做一个web core的项目,有docker支持的那种(建议vs2022);我用的.net6 准备Xshell launchSettings.j

    2024年02月09日
    浏览(89)
  • 将 .net core 项目部署到 Linux服务器

    目录 1、前言 2、安装 .NET SDK 或 .NET 运行时 3、创建数据库 4、发布项目到Linux环境 5、配置Nigix 6、Nginx配置Https 7、安装Supervisor 1、前言 部署服务器:阿里云的CentOS 7.6 64位 发布项目:.Net Core 5.0 数据库:MySql 5.8  其他:Nginx,Supervisor 2、安装 .NET SDK 或 .NET 运行时 参考官网网址

    2024年02月04日
    浏览(50)
  • ubuntu20安装docker、redis、mysql及部署net6应用

    一、更新系统软件包索引 二、安装docker 三、在docker中安装Mysql 拉取mysql镜像 查看镜像 运行容器 参数说明: -i :以交互模式运行,通常配合 -t -t :为容器重新分配一个伪输入终端,通常配合 -i -d :后台运行容器 -p :端口映射,格式为 主机端口:容器端口 -e :设置环境变量

    2024年02月02日
    浏览(30)
  • .net6 core web项目发布部署到IIS,以Windows服务的形式部署启动

    一、修改Program.cs代码,注册为 Windows Service 如果不注册builder.Host.UseWindowsService(); 安装为window服务会启动报错 安装NuGet包 Microsoft.Extensions.Hosting.WindowsServices Program.cs代码 二、发布项目 1、以文件夹形式 2、目标运行时选对应的平台(本Coder是:winx-64) 3、文件夹选项:在发布前删

    2024年02月11日
    浏览(39)
  • 如何部署ASP.NET Core到Linux服务器

    我们开发的最终目的,是将开发后的东西发布网络上,以便自己及其他人使用。 本篇博客介绍如果在 linux 上部署 ASP.NET Core应用,使用nginx+systemd 来管理我们的应用。 Ubuntu 20.04 Nginx .NET SDK 或 Runtime 安装Nginx 安装.NET 配置文件 nginx默认配置会加载 /etc/nginx/sites-enabled 中的网站,

    2024年02月11日
    浏览(31)
  • Linux系统上创建.NET6项目(通过命令行(CTL)方式)

    平时大家创建项目基本上都是借助开发工具创建,比如visual studio,visual studio code,今天我们在Linux系统上,通过命令行的形式创建.NET6项目。 第一个直接安装 如图所示,即.NET环境安装成功。 我们以webapi为例,演示创建项目的过程。 认识dotnet相关命令 经常会用到的命令。 认

    2024年02月03日
    浏览(35)
  • 如何再linux上部署asp.net项目

    要在 Linux 上部署 ASP.NET 项目,你需要安装 .NET Core 运行时,然后使用 dotnet 命令行工具来运行你的应用。 安装 .NET Core 运行时。你可以在此处下载最新版本的 .NET Core 运行时:https://dotnet.microsoft.com/download 创建 ASP.NET 项目。你可以使用以下命令创建一个新的 ASP.NET 项目: 进入项

    2024年02月02日
    浏览(31)
  • 【.NET6 + Vue3 + CentOS7.9 + Docker + Docker-Compose + SSL】个人博客前后端运维部署

    个人博客 前端:https://lujiesheng.cn 个人博客 后端:https://api.lujiesheng.cn 个人博客 运维:https://portainer.lujiesheng.cn 我采用的是 腾讯云轻量应用服务器(2C 4G 8M 80G),配置如下图: 安装镜像选择 CentOS 7.6 64bit: 添加防火墙出入站规则,设置如下图: 把已备案的域名解析到服务器

    2024年02月14日
    浏览(32)
  • .NET6 项目使用RabbitMQ实现基于事件总线EventBus通信

    一、概念及介绍         通常通过使用事件总线实现来执行此发布/订阅系统。 事件总线可以设计为包含 API 的接口,该 API 是订阅和取消订阅事件和发布事件所需的。 它还可以包含一个或多个基于跨进程或消息通信的实现,例如支持异步通信和发布/订阅模型的消息队列或

    2024年04月28日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包