当前位置: 首页 > news >正文

如何使用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

解压

解压之后会有很多包产生,为了方便查看,将其解压到 /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

使用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   查看防火墙状态

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

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

 firewall-cmd --reload 重载防火墙

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

设置mySql开启自启

systemctl enable mysqld

相关文章:

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

目录 一 配置服务器环境 1.1 配置yum 1.1.1 更新yum包 1.1.2 yum命令 1.2 配置docker …...

第4章-第3节-Java中跟数组相关的几个算法以及综合应用

在写这篇博文之前&#xff0c;先大概说明一下&#xff0c;就是很常见的数组算法如求最大值、一维数组的遍历等&#xff0c;这里就不去专门说明了&#xff0c;只说一些有代表性的&#xff0c;然后就是冒泡排序算法很容易查阅到&#xff0c;这里也不专门说明了&#xff0c;只说明…...

AlexNet(pytorch)

AlexNet是2012年ISLVRC 2012&#xff08;ImageNet Large Scale Visual Recognition Challenge&#xff09;竞赛的冠军网络&#xff0c;分类准确率由传统的 70%提升到 80% 该网络的亮点在于&#xff1a; &#xff08;1&#xff09;首次利用 GPU 进行网络加速训练。 &#xff…...

【单调栈 】LeetCode321:拼接最大数

作者推荐 【动态规划】【广度优先搜索】LeetCode:2617 网格图中最少访问的格子数 本文涉及的知识点 单调栈 题目 给定长度分别为 m 和 n 的两个数组&#xff0c;其元素由 0-9 构成&#xff0c;表示两个自然数各位上的数字。现在从这两个数组中选出 k (k < m n) 个数字…...

TikTok与虚拟现实的完美交融:全新娱乐时代的开启

TikTok&#xff0c;这个风靡全球的短视频平台&#xff0c;与虚拟现实&#xff08;VR&#xff09;技术的深度结合&#xff0c;为用户呈现了一场全新的娱乐盛宴。虚拟现实技术为TikTok带来了更丰富、更沉浸的用户体验&#xff0c;标志着全新娱乐时代的开启。本文将深入探讨TikTok…...

PXI/PCIe/VPX机箱 ARM|x86 + FPGA测试测量板卡解决方案

PXI便携式测控系统是一种基于PXI总线的便携式测试测控系统&#xff0c;它填补了现有台式及机架式仪器在外场测控和便携测控应用上的空白&#xff0c;在军工国防、航空航天、兵器电子、船舶舰载等各个领域的外场测控场合和科学试验研究场合都有广泛的应用。由于PXI便携式测控系统…...

ES6 面试题 | 12.精选 ES6 面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

【linux】Debian不能运行sudo的解决

一、问题&#xff1a; sudo: 没有找到有效的 sudoers 资源&#xff0c;退出 sudo: 初始化审计插件 sudoers_audit 出错 二、可用的方法&#xff1a; 出现 "sudo: 没有找到有效的 sudoers 资源&#xff0c;退出" 和 "sudo: 初始化审计插件 sudoers_audit 出错&q…...

讲解ThinkPHP的链式操作

数据库提供的链式操作方法&#xff0c;可以有效的提高数据存取的代码清晰度和开发效率&#xff0c;并且支持所有的CURD操作。 使用也比较简单&#xff0c;假如我们现在要查询一个User表的满足状态为1的前10条记录&#xff0c;并希望按照用户的创建时间排序 Db::table(think_u…...

Java技术栈 —— 微服务框架Spring Cloud —— Ruoyi-Cloud 学习(二)

RuoYi项目开发过程 一、登录功能(鉴权模块)1.1 后端部分1.1.1 什么是JWT?1.1.2 什么是Base64?为什么需要它&#xff1f;1.1.3 SpringBoot注解解析1.1.4 依赖注入和控制反转1.1.5 什么是Restful?1.1.6 Log4j 2、Logpack、SLF4j日志框架1.1.7 如何将项目打包成指定bytecode字节…...

如何进行软件测试和测试驱动开发(TDD)?

1. 软件测试概述 1.1 什么是软件测试&#xff1f; 软件测试是一种评估系统的过程&#xff0c;目的是发现潜在的错误或缺陷。通过对软件进行测试&#xff0c;开发者和测试人员可以确定软件是否符合预期的需求、功能是否正常运行&#xff0c;以及系统是否足够稳定和可靠。 1.2…...

linux 开机启动流程

1.打开电源 2.BIOS 有时间和启动方式 3.启动Systemd 其pid为1 4.挂载引导分区 /boot 5.启动各种服务 如rc.local...

Mybatis 动态SQL的插入操作

需求 : 根据用户的输入情况进行插入 动态SQL:根据需求动态拼接SQL 用户往表中插入数据,有的数据可能不想插入,比如不想让别人知道自己的性别,性别就为空 insert into userinfo(username,password,age,gender,phone) values(?,?,?,?,?); insert into userinfo(username,…...

共建开源新里程:北京航空航天大学OpenHarmony技术俱乐部正式揭牌成立

12月11日,由OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(以下简称“TSC”)和北京航空航天大学共同举办的“OpenHarmony软件工程研讨会暨北京航空航天大学OpenHarmony技术俱乐部成立仪式”在京圆满落幕。 现场大合影 活动当天,多位重量级嘉宾出席了此次…...

企业微信机器人发送文本、图片、文件、markdown、图文信息

import requests import base64 import hashlib import json # 机器人地址的key值 key"811a1652-60e8-4f51-a1d9-231783399ad2" def path2base64(path):"""文件转换为base64:param path: 文件路径:return:"""with open(path, "rb…...

智能优化算法应用:基于天牛须算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于天牛须算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于天牛须算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.天牛须算法4.实验参数设定5.算法结果6.参考文…...

【Hive】【Hadoop】工作中常操作的笔记-随时添加

文章目录 1、Hive 复制一个表:2、字段级操作3、hdfs 文件统计 1、Hive 复制一个表: 直接Copy文件 create table new_table like table_name;hdfs dfs -get /apps/hive/warehouse/ods.db/table_nameload data local inpath /路径 into table new_table;修复表&#xff1a; m…...

DIY电脑装机机箱风扇安装方法

作为第一次自己diy一台电脑主机的我&#xff0c;在经历了众多的坑中今天来说一下如何安装机箱风扇的问题 一、风扇的数量 1、i3 xx50显卡 就用一个cpu散热风扇即可 2、i5 xx60 一个cpu散热风扇 一个风扇即可 3、i7 xx70 一个cpu散热 4个风扇即可 4、i9 xx80 就需要7个以…...

基础算法(4):排序(4)冒泡排序

1.冒泡排序(BubbleSort)实现 算法步骤&#xff1a;比较相邻的元素。如果第一个比第二个大&#xff0c;就交换。 对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对。 这步做完后&#xff0c;最后的元素会是最大的数。 针对所有的元素重复以上的步骤&#…...

鸿蒙开发之网络请求

//需要导入http头文件 import http from ohos.net.http//请求地址url: string http://apis.juhe.cn/simpleWeather/queryText(this.message).maxFontSize(50).minFontSize(10).fontWeight(FontWeight.Bold).onClick(() > {console.log(请求开始)let req http.createHttp()…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...