一、检查环境:

1、下载ios系统文件
2、打开ultraiso->菜单->文件->打开系统.ios镜像
3、启动->写入硬盘镜像->(勾选刻录校检)->写入

注意:
	不是“制作硬盘镜像” 这个是把当前盘做成镜像
	勾选刻录校检 , 不勾选有时会有错,不太稳
	注意驱动器: 到时在bios也就是显示这个

bios 设置:
		Boot->Option #1 //这些就是硬盘
		Boot->Option #2 


调风扇:
	开机按F2进入在 “ iDRAC Settings(iDRAC 设置) → Thermal ” 里面调(这个要下拉才能看到,我以为没有)-> 
	
	Fan Speed Offset -> 下拉中 -> 
								Off
								Low(+23%)
								Medium(+45%)
								High(+68%)
								Maximum(+100%) //用这个最快的风速

查看当前操作系统是ubuntu还是centos
	1、执行: lsb_release -a
	2、命令: cat /etc/redhat-release
	3、命令: cat /etc/issue
	
	[root@localhost ~]# cat /etc/redhat-release
	CentOS Linux release 7.5.1804 (Core)

查看当前操作系统cpu信息
 cat /proc/cpuinfo 
 lscpu #这个是更好
 
 [web@localhost ~]$ lscpu
	Architecture: x86_64
	CPU op-mode(s): 32-bit, 64-bit
	Byte Order: Little Endian
	CPU(s): 72 # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l
	On-line CPU(s) list: 0-71
	Thread(s) per core: 2
	Core(s) per socket: 18		# 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq
	座Socket(s): 2		# 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
	NUMA 节点: 2
	厂商 ID: GenuineIntel
	CPU 系列: 6
	型号: 79 
	型号名称: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
	步进: 1
	CPU MHz: 1199.835
	CPU max MHz: 3000.0000
	CPU min MHz: 1200.0000
	BogoMIPS: 4599.87
	虚拟化: VT-x
	L1d 缓存: 32K
	L1i 缓存: 32K
	L2 缓存: 256K
	L3 缓存: 46080K
	NUMA 节点0 CPU: 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70
	NUMA 节点1 CPU: 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71
	Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 invpcid_single ssbd rsb_ctxsw ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts spec_ctrl intel_stibp flush_l1d

	华为的:
	[root@wll-88 ~]# lscpu		
	CPU(s): 1			# 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l
	On-line CPU(s) list: 0
	Thread(s) per core: 1
	Core(s) per socket: 1			# 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq
	
	Socket(s): 1			#座 # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
	NUMA node(s): 1
	Vendor ID: GenuineIntel
	CPU family: 6
	Model: 85
	Model name: Intel(R) Xeon(R) Gold 6161 CPU @ 2.20GHz
	Stepping: 4
	CPU MHz: 2200.000
	BogoMIPS: 4400.00
	
	Hypervisor vendor: KVM #虚拟化
	Virtualization type: full
	
	L2 cache: 1024K
	L3 cache: 30976K
	NUMA node0 CPU(s): 0

查看内存:
	[root@localhost ~]# free -h
				 total used free shared buff/cache available
	Mem: 125G 994M 124G 10M 302M 124G
	Swap: 4.0G 0B 4.0G

查看硬盘:
	df -h
	lsblk -f
	lsblk 这个更好
	
	[root@localhost ~]# lsblk
	NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
	sda 8:0 0 3.7T 0 disk 
	├─sda1 8:1 0 1M 0 part 
	├─sda2 8:2 0 1G 0 part /boot
	└─sda3 8:3 0 3.7T 0 part 
	 ├─centos-root 253:0 0 50G 0 lvm /
	 ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
	 └─centos-home 253:2 0 3.6T 0 lvm /home
	sdb 8:16 0 3.7T 0 disk 

禁用多余的用户:	
	在Linux中,可以使用usermod命令来禁用或启用用户。
	
	要禁用用户,需要使用-L选项并指定要禁用的用户名。下面是示例命令: 	 usermod -L username
	启用用用户,-U 参数表示解锁用户的账户。启用用户后,该用户可以登录系统: usermod -U username

查看用户:
	cat /etc/passwd	
	sudo yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel openssl-devel		
	sudo yum -y install gcc automake autoconf libtool make			

复制
	cp -rf /usr/local/servers/web/nginx.conf /usr/local/servers/nginx19/conf/nginx.conf
	cp -Rp hyperf hyperf_back_3
	scp -o "StrictHostKeyChecking no" -r web@40.73.71.100:/usr/local/servers/down /usr/local/servers/down //拷贝 服务器对拷贝 复制	
	
	scp -r -o port=62210 "StrictHostKeyChecking no" -r web@www.diyyq.com:/home/data/docker/web/www/wll/public/images/ ./ ##linux scp 非22端口,scp 、ssh非22端口的服务器方法 //拷贝 服务器对拷贝 复制		

大小
	du -sh down/*
	df -h
	echo "">pic_duzunlife_cn.log
	du -sh ./* | sort -h 从小到大
	du -sh ./* | sort -hr 从大到小

	du -sh ./* | sort -hr | grep '4.0K'
	du -sh ./* | sort -hr | grep '4.0K' | awk '{print $2}' | xargs rm -rf #删除4.0K的文件


安全设置:
	1.关闭邮箱服务占用端口。
	systemctl stop postfix 	//停止25端口邮箱服务
	systemctl disable postfix //关闭邮箱服务自动启动
	//systemctl enable postfix //开启邮箱服务自动启动

linux命令查看开放哪些端口
	/usr/local/qcloud/wll/squid.sh >/tmp/wll_squid.log & 黑洞: 把squid.sh的输出入到/tmp/wll_squid.log 中 并后台运行
	
	ps -fe (查看所有的父ID,这个才是核心)
	netstat -nupl (UDP类型的端口)
	netstat -ntpl (TCP类型的端口)
	netstat -an | grep 3306 		查看所有3306端口使用情况·
	netstat -anp |grep 3306			查看某一端口的连接客户端IP 比如3306端口
	netstat -pnt |grep :3306 |wc	查看某一端口的连接数量,比如3306端口
	
	
	#这用这何以看是哪个程序在运行这个端口, 看到的是 159928/python , pid为159928	
		[web@localhost ~]$ sudo netstat -lenp | grep 8201 		
		tcp 0 0 0.0.0.0:8201 0.0.0.0:* LISTEN 0 20194510 159928/python 
		
		[web@localhost ~]$ ps aux | grep 159928
		root 159928 1.7 0.2 27468828 701276 pts/1 Sl+ 18:29 0:21 python desc_face_fastapi_cpu_v2.py
		web 160563 0.0 0.0 112824 984 pts/3 S+ 18:49 0:00 grep --color=auto 159928



网络说明: https://zhuanlan.zhihu.com/p/458631078 --network-alias 与 –-network=host
查看端口: sudo netstat -tanlp 查看使用的端口情况, 查看端口
		 netstat -nap | grep 10493
		 yum -y install net-tools

查看进程端口:
	(mygpt) root@dz-desktop:/home/ftp/chatglmTran# ps aux
	root 3397 0.0 0.1 716244 19812 pts/1 Sl+ 16:33 0:00 /home/down/frp_0.38.0_linux_amd64/frps -c /home/down/frp_0.38.0_linux_amd64/frps.ini
		
	(mygpt) root@dz-desktop:/home/ftp/chatglmTran# netstat -nelp 
	tcp6 0 0 :::7000 :::* LISTEN 0 43683 3397/frps


rm ~/.bash_history 彻底 清除历史记录,要不到时有关机命令错误操作
----------------
查看dns: cat /etc/resolv.conf

---------------- CentOS 7官方停止维护yum源安装报错,如何修改yum源为阿里云 ----------------

方式一、感觉已失效

	centos7,2024年6月30日停止维护(EOL,End Of Life),自此时间后Centos7将无法使用Centos社区官方提供的yum源下载软件,当使用默认源下载时会报如下错误:
		curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
		...
		Cannot find a valid baseurl for repo: base/7/x86_64
		或者
		Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
		14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
			
		
		表示官方软件仓库的域名地址(mirrorlist.centos.org)已经被删除了解析,已无法访问,建议用户更换其他系统,如果您一定要使用CentOS 7.x,那么只能将系统的yum源更换为第三方yum源。
	
		以下是将yum源更换为阿里云的教程。
		
		curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
		curl -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
		yum clean all
		yum makecache
		
		如果你是完全mini安装的centos还没有 curl工具,可以尝试以下命令然后再 clean和make。
		
		cat /etc/yum.repos.d/CentOS-Base.repo
		
		[base]
		name=CentOS-$releasever - Base
		baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
		gpgcheck=1
		gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
		
		[updates]
		name=CentOS-$releasever - Updates
		baseurl=http://mirrors.aliyun.com/centos/7/updates/$basearch/
		gpgcheck=1
		gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
		
		[extras]
		name=CentOS-$releasever - Extras
		baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/
		gpgcheck=1
		gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
		
		
		然后安装测试:
			yum install epel-release -y			
			yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm # 必须安装 RPM Fusion 仓库
			yum update
			yum install ffmpeg ffmpeg-devel -y
			ffmpeg -version
			pip install ffmpeg-python -i https://pypi.tuna.tsinghua.edu.cn/simple

方式二、有效
	
	1. 重命名原来的文件:
		cd /etc/yum.repos.d/
		mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak
		mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak	 
		vim CentOS-SCLo-scl-rh.repo
	
	2. 粘贴以下内容:	
		[centos-sclo-rh]
		name=CentOS-7 - SCLo rh
		baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
		gpgcheck=1
		enabled=1
		gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
	
	3. 再次安装
		yum install wget	
	
方式三、在docker中测试
	 357 cat /etc/yum.repos.d/CentOS-Base.repo
	 358 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
	 359 curl -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
	 360 yum clean all
	 361 yum makecache
	 362 cat /etc/yum.repos.d/CentOS-Base.repo
	 363 yum install zip unzip


	
更新排除kernel 更新方法 防止centos7.5突然升级到7.9:

	ll /var/cache/yum
	rm -rf /var/cache/yum #删除之前的缓存
	
	sudo vi /etc/yum.conf
	
	在 [main] 最后添加以下配置:
		exclude=kernel* 
		exclude=centos-release*
 
 sudo yum clean all	


----------------


禁ping ip :

方法二:修改sysctl.conf文件

 1、 连接到Linux服务器的终端。
 使用文本编辑器打开sysctl.conf文件:
 sudo vi /etc/sysctl.conf
 
 2、 在文件的末尾添加以下行:
 net.ipv4.icmp_echo_ignore_all = 1
 
 3、 保存并退出编辑器。
 运行以下命令使修改生效:
 sudo sysctl -p

----------------

linux获取当前ip
	curl ip.sb

shell获取ip
	ip=$(curl ip.sb)
	echo $ip

----------------
	
ip addr //查看ip
useradd -d /usr/local/servers/ web //增加用户web,并制定web用户的主目录为/usr/local/servers/
passwd web //为web设置密码
cat /etc/passwd 查看用户路径
whoami //查看当前登陆的用户
su web //切换用户
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时间, 填: yes
date -R # 查看当前时间

//用上面的sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 无效后,要手动改
sudo date -s "2021-07-07 15:57"
sudo hwclock -w

----------------

回复用户ssh权限,以前是(/sbin/nologin):

	sudo useradd -M -s /sbin/nologin mysql #-M:不要自动建立用户的登入目录 /sbin/nologin mysql //限定用户mysql不能telnet,只能ftp	
	sudo usermod mysql -s /bin/bash #恢复	
	cat /etc/passwd
		mysql:x:1001:1001::/home/mysql:/bin/bash
		
	sudo mkdir /home/mysql	
	sudo chown -R mysql:mysql /home/mysql	
	
	如果已存在的用户可以更新目录 : usermod -d /usr/local/servers/ vmuser (vmuser为你的用户名),

----------------

查看网络堵塞:traceroute yangkeduo.com
查大文件:sudo find / -type f -size +300M -print0 | xargs -0 du -h | sort -nr	

----------------
sudo yum install -y unzip zip
tar -zxvf nginx-1.9.12.tar.gz #解压
tar -zcvf /usr/local/servers/back/web_back.tar.gz /usr/local/servers/nginx/html/wkb/* /usr/local/servers/nginx/html/led/* 压缩

vi /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

----------------

文件权限:

	chmod 0775 11.txt
	
	[web@localhost images]$ ll	
		-rwxrwxr-x 1 web web 6 3月 16 18:17 11.txt
		-rwxr--r-- 1 web web 74800 4月 23 2021 1.jpg
		drwxrwxr-x 2 web web 4096 5月 7 2022 20210803
		drwxrwxr-x 2 web web 54 5月 7 2022 20210903
	
	说明:
		https://blog.csdn.net/RachelCSDN/article/details/102060939
		
		● drwxrwxr-x
			第1个字母代表文件的类型:
			d代表文件夹、- 代表普通文件、c代表硬件字符设备、b代表硬件块设备、l代表软链接文件
		● rwx rwx r-x 共三组
			r 可读 
			w 可写 
			x 可执行 
			- 没有任何权限
					
			字母法:
				u 文件的拥有者的权限(第一组)
				g 文件的拥有的组的权限(第二组)
				o 其他用户的权限(第三组)
				a 所有用户
		● + 添加权限
			- 删除权限
			= 设置权限(把之前的权限换成新的权限)
		
		例子:
			chomd u+r test.txt 给文件的拥有者添加 r(读)权限
			chmod u=r,g+w,o-r test.txt 给自己设置 r 权限,给自己组添加 w 权限,给其他人删除 r 权限
		数字法:
			r 4
			w 2
			x 1
			- 0
			3=1+2 代表wx权限
		例子:
			chmod 123 test.txt
			第一位数字代表自己的权限,第二位数字代表自己组的权限,第三位数字代表其他人的权限
		
		还有更多说明:
			https://blog.csdn.net/whatday/article/details/104108642
			
			读取权限 r = 4 
			写入权限 w = 2 
			执行权限 x = 1 
			
			775 这三个数字代表拥有者,组用户,其他用户的权限。 
			例如: 
			7 拥有者有 读取,写入,执行权限 
			7 组用户有 读取,写入,执行权限 
			5 其他用户有 读取,执行权限(4+1 = 5) 
			
			777 与 775的区别是 
			其他用户有写入权限,而775的没有。 
			
			举个例子: 
			文件A,权限是775 
			root是拥有者 
			www-data是组用户 
			ooo 是其他用户 
			
			那么 
			root,www-data,ooo都能对文件A读取和执行。 
			root,www-data 能对文件A写入。 
			ooo不能对文件A写入。 
			
			如果是777 
			
			则三个用户都能读取,写入,执行文件A 

二、 ip设置 :

1、网络(备用,当找不到网卡的时候才会用):
	centos添加网卡 找不到ip addr命令对应的网卡 : https://blog.csdn.net/qq_51313111/article/details/116233082
	用命令:nmtui
	
	服务器有4个网卡(em1,em2,em3,em4):
	
		[root@localhost ~]# ip addr
		1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
			link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
			inet 127.0.0.1/8 scope host lo
			 valid_lft forever preferred_lft forever
			inet6 ::1/128 scope host 
			 valid_lft forever preferred_lft forever
		2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
			link/ether 14:18:77:5d:4d:c3 brd ff:ff:ff:ff:ff:ff
			inet 10.10.10.244/24 brd 10.10.10.255 scope global noprefixroute dynamic em1
			 valid_lft 86303sec preferred_lft 86303sec
		3: em2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
			link/ether 14:18:77:5d:4d:c4 brd ff:ff:ff:ff:ff:ff
		4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
			link/ether 14:18:77:5d:4d:c5 brd ff:ff:ff:ff:ff:ff
		5: em4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
			link/ether 14:18:77:5d:4d:c6 brd ff:ff:ff:ff:ff:ff

	多卡时默认使用哪个卡:
		
		之前遇到就是 : ping 不通, curl 不通
			主查改的是: vim /etc/sysconfig/network-scripts/ifcfg-em2:			
			DEFROUTE=yes #这个只有一个设置为主,其它的都为否 no 就可以了,坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑
			
		
		[web@localhost network-scripts]$ ip route
		default via 10.10.10.1 dev em2 proto static metric 101 #这里显示默认 10.10.10.1 卡口1用的是 : em2 
		10.10.10.0/24 dev em2 proto kernel scope link src 10.10.10.244 metric 101 
		8.148.117.133/28 dev em1 proto kernel scope link src 8.148.217.123 metric 100 
		172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
		172.18.0.0/16 dev br-8f143c8d58ed proto kernel scope link src 172.18.0.1 


2、ip设置 - 查看当前有哪个网卡,比如我的有: ifcfg-eth0 与 ifcfg-em1 网张网卡
	ll /etc/sysconfig/network-scripts/ 
	sudo vi /etc/sysconfig/network-scripts/ifcfg-em1
	
	TYPE=Ethernet
	BOOTPROTO=static			#这个得注意是静态
	DEFROUTE=yes				#是否做为默认卡,多个卡中只能有一个是yes,其它都为no
	ONBOOT=yes					#系统启动时自动激活这个网络接口
	DEVICE=em1					#传统的以太网卡 - 实际的设备名称(必须与系统中的一致)DEVICE=eth0
	
	#NAME=em1					#可以省略 - 配置文件的逻辑名称(可以自定义)
	#UUID=11e74d39-ba0e-4413-bc5b-0afe91694555 #可以省略 - 在同一系统中防止网卡配置文件重名
	
	# IP地址配置
	IPADDR=192.168.1.100 # 本机IP地址
	PREFIX=28 # 子网掩码位数(/28 = 255.255.255.240)
	GATEWAY=192.168.1.1 # 网关地址
	# 注意:192.168.1.100必须在192.168.1.96-192.168.1.111这个范围内才有效
	
	# DNS服务器配置
	DNS1=202.96.128.86 # 主DNS服务器
	DNS2=114.114.114.114 # 备用DNS服务器
	
	# IPv4配置
	IPV4_FAILURE_FATAL=no # IPv4配置失败时不终止网络服务
	
	# IPv6配置
	IPV6INIT=no # 不启用IPv6
	
	# 其他配置
	PROXY_METHOD=none # 不使用代理
	BROWSER_ONLY=no # 不仅限浏览器使用

3、wq! 保存后重启才能生效
	/etc/rc.d/init.d/network restart
	cat /etc/resolv.conf #查看当前使用的dns
	ip addr 查看ip
	
	curl http://www.baidu.com

三、 新建用户:

yum -y install net-tools
netstat -nap | grep 10493	 #netstat -tanlp 查看使用的端口情况, 查看端口
netstat -nelp //查看端口 - 这个现在用得最多 
		
[web@localhost ~]$ vi /etc/selinux/config #将 SELINUX 配置文件设置为 disabled 模式,禁用SELinu //msyql 共享都会有影响
	# This file controls the state of SELinux on the system.
	# SELINUX= can take one of these three values:
	# enforcing - SELinux security policy is enforced.
	# permissive - SELinux prints warnings instead of enforcing.
	# disabled - No SELinux policy is loaded.
	SELINUX=disabled
	#SELINUX=enforcing
	# SELINUXTYPE= can take one of three two values:
	# targeted - Targeted processes are protected,
	# minimum - Modification of targeted policy. Only selected processes are protected. 
	# mls - Multi Level Security protection.
	SELINUXTYPE=targeted 

验证		
	[root@MongoDB ~]# grep "SELINUX=disabled" /etc/selinux/config 
	SELINUX=disabled	 		
	然后reboot重启生效

	
必须新建一个叫web的账号,并且路径必须为:/home/data/
cat /etc/passwd 看所有系统用户信息	

[root@localhost ~]# cat /etc/passwd
	root:x:0:0:root:/root:/bin/bash
	bin:x:1:1:bin:/bin:/sbin/nologin
	daemon:x:2:2:daemon:/sbin:/sbin/nologin
	adm:x:3:4:adm:/var/adm:/sbin/nologin
	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
	sync:x:5:0:sync:/sbin:/bin/sync
	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
	halt:x:7:0:halt:/sbin:/sbin/halt
	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
	operator:x:11:0:operator:/root:/sbin/nologin
	games:x:12:100:games:/usr/games:/sbin/nologin
	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
	nobody:x:99:99:Nobody:/:/sbin/nologin
	systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
	dbus:x:81:81:System message bus:/:/sbin/nologin
	polkitd:x:999:998:User for polkitd:/:/sbin/nologin
	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
	postfix:x:89:89::/var/spool/postfix:/sbin/nologin
	chrony:x:998:996::/var/lib/chrony:/sbin/nologin

useradd -d /home/data/ web 注意此目录不能是已存在的目录 更改目录命令: usermod -d /home/data/ web 报错: usermod: user web is currently used by process 14171 那么退出当前web用户, kill -9 14171 再次执行:usermod -d /home/data/ web 就ok了
passwd web #设置web用户的密码	

cat /etc/passwd 发现用户不用修改: 
	usermod -u 1002 weililong			#修改用户UID
	groupmod -g 1002 weililong			#修改用户GID
	
	usermod -u 1000 web
	groupmod -g 1000 web

//cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //更新时间, 填: yes
//date -R # 查看当前时间

添加 sudo 权限	
 yum -y install sudo
	vi /etc/sudoers 	
	查: root ALL=(ALL) ALL	
	加: web ALL=(ALL) ALL	
	wq! 强行保存

四、 挂载硬盘(可选) 当空间不够,需要提前规划挂载:

挂载:
	[web@localhost home]$ lsblk
		NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
		sda 8:0 0 3.7T 0 disk 
		├─sda1 8:1 0 1M 0 part 
		├─sda2 8:2 0 1G 0 part /boot
		└─sda3 8:3 0 3.7T 0 part 
		 ├─centos-root 253:0 0 50G 0 lvm /
		 ├─centos-swap 253:1 0 4G 0 lvm [SWAP]
		 └─centos-home 253:2 0 3.6T 0 lvm /home
		sdb 8:16 0 3.7T 0 disk 
		
	1、挂载
		sudo mkfs -t ext4 /dev/sdb 				#必须先执行成ext4格式 #备注 sdb都盘 都是存在在/dev 下面的 
		sudo mkfs.xfs -f -n ftype=1 /dev/sdb 	#可以改成xfs格式	
		
		mkdir -p /home/data/docker/web					
		sudo mount /dev/sdb /home/data/docker/web 	#临时挂载到 测试上面的格式化好的盘(#直接格式化成 xfs格式) sudo umount /dev/sdb 取消挂载
		df -h 										#查看挂载	
		
	2、开机自动挂载			
		sudo vi /etc/rc.local
		mount /dev/sdb /home/data/docker/web
		
		4、
		chmod +x /etc/rc.local
		
		5、
		vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。

四、 安装gpu(可选) 有英伟达显卡即可,我用的是3090rtx:

查看linux系统有没有gpu设备
	
	1、Linux查看显卡信息:(ps:若找不到lspci命令,可以安装 yum install pciutils)
		
		[root@localhost ~]# lspci | grep -i vga
		0a:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. G200eR2 (rev 01)
			
	2、使用nvidia GPU可以:
		[root@localhost ~]# lspci | grep -i nvidia
		82:00.0 3D controller: NVIDIA Corporation GP102GL [Tesla P40] (rev a1)
		
	//3、查看显卡驱动
	//	cat /proc/driver/nvidia/version
	
	
	3、查看需要下载的是哪个版本的 kernel 内核
	
		[root@localhost ~]# ls /boot | grep vmlinu
			vmlinuz-0-rescue-7991be6d8f7c4a0f8c0930b12dc0aa5d
			vmlinuz-3.10.0-862.el7.x86_64
		
		[root@localhost ~]# 
		[root@localhost ~]# rpm -aq | grep kernel-devel #没有内核,需要手动下载安装。 因为 检查内核版本和源码版本,保证一致: 下载 http://rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
		
		
		[root@localhost ~]# 
		[root@localhost ~]# uname -r
		3.10.0-862.el7.x86_64
		[root@localhost ~]# 
		[root@localhost ~]# 
		
		#没有内核,需要手动下载安装。:
			kernel-devel-3.10.0-862.el7.x86_64.rpm	
			链接:https://pan.baidu.com/s/1OkI18JFDSM2puTD2vaNweQ
			提取码:zzjt

	
	4、屏蔽系统自带的nouveau
		[root@localhost ~]# lsmod | grep nouveau
		nouveau 1662531 0 
		video 24538 1 nouveau
		mxm_wmi 13021 1 nouveau
		i2c_algo_bit 13413 2 mgag200,nouveau
		drm_kms_helper 176920 2 mgag200,nouveau
		ttm 99555 2 mgag200,nouveau
		drm 397988 5 ttm,drm_kms_helper,mgag200,nouveau
		i2c_core 63151 6 drm,ipmi_ssif,drm_kms_helper,mgag200,i2c_algo_bit,nouveau
		wmi 19086 2 mxm_wmi,nouveau

	 					
		[root@localhost ~]# vi /lib/modprobe.d/dist-blacklist.conf			
			
			将nvidiafb注释掉:
			#blacklist nvidiafb 
			
			然后添加以下语句:
			blacklist nouveau
			options nouveau modeset=0
		
		
		重建initramfs image步骤
			mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak33333333333333
			dracut /boot/initramfs-$(uname -r).img $(uname -r)			
			 
			
		修改运行级别为文本模式			
			systemctl set-default multi-user.target				

		[root@localhost ~]# lsmod | grep nouveau #这回再看就已经没有了		
		[root@localhost ~]# 
		
	
	5、继续安装kernel 内核
		//yum install kernel-devel gcc -y 											#这一步很重要,先安装: kernel-devel 再删除,要不然下面就没办法安装指定版本 , 我装u2需要,u3的时候就不需要了,哈哈.. 能不用就不用
		yum install -y numactl-devel*x86_64 make gcc libpcap libpcap-devel
		
		[root@localhost downs]# rpm -aq | grep kernel-devel 						#看看已经安装了内核了,虽然版本不对,但是必须得安装,要不然下面的指定版本安装不上
		kernel-devel-3.10.0-1160.108.1.el7.x86_64


		
		[root@localhost downs]# rpm -e kernel-devel-3.10.0-1160.108.1.el7.x86_64	#删除自动安装的版本内核
		[root@localhost downs]# rpm -aq | grep kernel-devel							#看看已经被删除了空了
		[root@localhost downs]# 
	
		
		[root@localhost downs]# pwd		
		-rw-r--r--. 1 root root 16424580 3月 14 13:43 kernel-devel-3.10.0-862.el7.x86_64.rpm
		
		[root@localhost downs]# rpm -ivh kernel-devel-3.10.0-862.el7.x86_64.rpm #有了之前安装过自动版,现在安装指定版就不会报错了
		准备中... ################################# [100%]
		正在升级/安装...
		 1:kernel-devel-3.10.0-862.el7 ################################# [100%]
		[root@localhost downs]# 
		
		再次查看版本已对上了:
			[root@localhost downs]# ls /boot | grep vmlinu
				vmlinuz-0-rescue-7991be6d8f7c4a0f8c0930b12dc0aa5d
				vmlinuz-3.10.0-862.el7.x86_64			
			
			[root@localhost downs]# rpm -aq | grep kernel-devel
				kernel-devel-3.10.0-862.el7.x86_64
					 
			[root@localhost downs]# uname -r
				3.10.0-862.el7.x86_64
			
	6、安装CUDA 驱动 (之前window是老大安装好了,我没有装,所以导致装linux时感觉老不对劲)
		https://www.nvidia.cn/Download/index.aspx?lang=cn
				
		Data Center Driver for Linux x64
		 
		版本: 	515.105.01
		发布日期: 	2023.3.30
		操作系统: 	Linux 64-bit
		CUDA Toolkit: 	11.7
		语言: 	Chinese (Simplified)
		文件大小: 	346.89 MB
		ll /usr/src/kernels/3.10.0-862.el7.x86_64
		chmod +x NVIDIA-Linux-x86_64-515.105.01.run
		./NVIDIA-Linux-x86_64-515.105.01.run --kernel-source-path=/usr/src/kernels/3.10.0-862.el7.x86_64 -k $(uname -r)
	
		
		[root@localhost downs]# nvidia-smi
		
			Thu Mar 14 14:26:09 2024 
			+-----------------------------------------------------------------------------+
			| NVIDIA-SMI 515.105.01 Driver Version: 515.105.01 CUDA Version: 11.7 |
			|-------------------------------+----------------------+----------------------+
			| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
			| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
			| | | MIG M. |
			|===============================+======================+======================|
			| 0 Tesla P40 Off | 00000000:82:00.0 Off | Off |
			| N/A 52C P0 54W / 250W | 0MiB / 24576MiB | 1% Default |
			| | | N/A |
			+-------------------------------+----------------------+----------------------+
																						 
			+-----------------------------------------------------------------------------+
			| Processes: |
			| GPU GI CI PID Type Process name GPU Memory |
			| ID ID Usage |
			|=============================================================================|
			| No running processes found |
			+-----------------------------------------------------------------------------+
			
	
	问题
	 -------- 用了一段时间,发现 nvidia-smi 突然用不了了,它喵的 什么时候升级到centos 7.9 了, 之前不是7.5的吗 ------------------

		[web@localhost ~]$ rpm -aq | grep kernel-devel
		kernel-devel-3.10.0-862.el7.x86_64 //自己装的
		
		[web@localhost ~]$ uname -r
		3.10.0-1160.114.2.el7.x86_64 //现在是这个,不对了
		
		[web@localhost ~]$ cat /etc/redhat-release
		CentOS Linux release 7.9.2009 (Core) 
		
		 1029 cat /etc/redhat-release
		 1030 uname -r
		 1031 uname -a		 
		 
		 rpm -e kernel-devel-3.10.0-1160.el7.x86_64 删除这个版本
		 
		 1033 yum repolist		 
		 1034 wget -nc http://mirrors.aliyun.com/repo/Centos-7.repo 	
		 1035 yum upgrade -y
		 1036 sudo yum upgrade -y
		 
		 1037 lspci | grep -i nvidia
		 1038 ls /boot | grep vmlinu
		 1039 rpm -aq | grep kernel-devel
		 1040 uname -r
		 
		 1041 rpm -aq | grep kernel-devel 
		 1042 lspci -nn | grep NV	
		 1049 lspci | grep -i nvidia
		 1050 yum install gcc
		 1051 sudo yum install gcc
		 1052 sudo yum install gcc-g++
		 1053 sudo yum install -y elfutils-libelf-devel
		 1054 sudo yum install -y kernel-devel gcc -y
		 1055 ls /boot | grep vmlinu
		 1056 rpm -aq | grep kernel-devel
		 1057 uname -r
		 1058 rpm -aq | grep kernel-devel
		 1060 ll /usr/src/kernels/3.10.0-1160.119.1.el7.x86_64/
		 
		 
		 cd /home/data/downs
		 chmod +x NVIDIA-Linux-x86_64-550.90.12.run			 
		 sudo ./NVIDIA-Linux-x86_64-550.90.12.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64 -k $(uname -r)

		 watch -n 1 nvidia-smi
		

删除所有驱动:
	yum remove kmod-nvidia-*
	sudo yum remove nvidia* 会把 sudo yum install -y nvidia-docker2 这个docker gpu删除了
	sudo yum remove cuda-repo-*
	sudo rm -rf /usr/local/cuda
	
	//1、有用	
	yum remove kernel-devel kernel-headers
	ll /usr/src/kernels/ 
	uname -r #显示 3.10.0-1160.el7.x86_64 所以需要要安装这个,我以下载好: kernel-devel-3.10.0-1160.el7.x86_64.rpm
	
	cd /root/down
	rpm -ivh kernel-devel-3.10.0-1160.el7.x86_64.rpm #安装与 uname -r 命令找出来的版本相同的包				
	rpm -q kernel-devel-3.10.0-1160.el7.x86_64		 #查看安装情况
	
	//2、看看以经对上了
	[root@localhost down]# rpm -aq | grep kernel-devel
	kernel-devel-3.10.0-1160.el7.x86_64
	[root@localhost down]# uname -r
	3.10.0-1160.el7.x86_64 	

		
	3、3090显卡安装:
	 	sudo yum install gcc
		sudo yum install gcc-g++
		//sudo yum install -y elfuti
		sudo ./NVIDIA-Linux-x86_64-525.116.03.run --kernel-source-path=/usr/src/kernels/3.10.0-1160.el7.x86_64 -k $(uname -r)
		
	
	sudo yum install -y nvidia-docker2

五、 安装docker(可选) 非常建议安装,因为docker隔离环境对项目太有用了:

安装docker	
	
	//1、这种方式安装最新版
	
	# 添加阿里云Docker CE仓库
	sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	
	# 安装Docker
	sudo yum install docker-ce docker-ce-cli containerd.io
	
	[root@iZ7xv5338yx57mku9ci5qoZ ~]# docker ps
	CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
	[root@iZ7xv5338yx57mku9ci5qoZ ~]# docker --version
	Docker version 26.1.4, build 5650f9b
	[root@iZ7xv5338yx57mku9ci5qoZ 		

安装docker
	
	Linux安装Docker
	
	//Linux中关闭SELinux的方法(这个新装的linux一定要执行,很中要,否则后面mysql都不能生成启动docker了):
	sudo vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。
	
	关闭防火墙
	sudo systemctl stop firewalld
	sudo systemctl disable firewalld 禁止防火墙开机	
	
	// 仅此一条命令就可以搞定,安的版本太旧(我用这个版,兼容最好,速度最快)
	sudo yum -y install docker-io
	sudo systemctl restart docker
	sudo docker ps
	
	//这种方式安装最新版
	curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
	systemctl daemon-reload
	systemctl restart docker 
	docker ps
	docker --version
	
	1、关机后重启,docker自动启动
		sudo systemctl enable docker 然后重启
	
	2、当前天用户添加的docker用户组,这样不用加sudo了	 https://my.oschina.net/zjzhai/blog/196375
		sudo groupadd docker						添加组	
		sudo gpasswd -a ${USER} docker				添加当前用户到dokcer组中 , 当前用户获取 ${USER}
		sudo service docker restart		
	
	
 Docker pull速度慢解决方案
	https://blog.csdn.net/weixin_43569697/article/details/89279225
		
	sudo vi /etc/docker/daemon.json	
	
	插入以下国内镜像地址:	
	Docker pull速度慢解决方案或不能上传:
		
	sudo vi /etc/docker/daemon.json	
	
	//有gpu的话添加的(没有就不要加)
	{
		"runtimes": {
			"nvidia": {
				"path": "nvidia-container-runtime",
				"runtimeArgs": []
			}
		},
	
	//没有gpu只要加下面即可
	"registry-mirrors": [
		"https://mirror.gcr.io",
		"https://docker.registry.cyou",
		"https://docker-cf.registry.cyou",
		"https://dockercf.jsdelivr.fyi",
		"https://docker.jsdelivr.fyi",
		"https://dockertest.jsdelivr.fyi",
		"https://mirror.aliyuncs.com",
		"https://dockerproxy.com",
		"https://mirror.baidubce.com",
		"https://docker.m.daocloud.io",
		"https://docker.nju.edu.cn",
		"https://docker.mirrors.sjtug.sjtu.edu.cn"
	 ],
	 
	 "live-restore": true // 解决 docker push 已经无法推送 unauthorized: authentication required 说明: https://support.huaweicloud.com/deployman_faq/deployman_faq_1095.html
	}	
	
	sudo systemctl daemon-reload 
	//sudo systemctl restart docker 
	
	
	//2、如果改docker路径配置
			
		1、清楚所有镜像
		
		2、从新改目录
			sudo vi /lib/systemd/system/docker.service
				
				查: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
				
				修改:ExecStart=/usr/bin/dockerd --data-root /home/dockersys -H fd:// --containerd=/run/containerd/containerd.sock
				其中: /home/dockersys 就是docker 指定的目录
				sudo systemctl daemon-reload
				sudo systemctl restart docker

		2、当前天用户添加的docker用户组,这样不用加sudo了	 https://my.oschina.net/zjzhai/blog/196375
			sudo groupadd docker						添加组	
			sudo gpasswd -a ${USER} docker				添加当前用户到dokcer组中 , 当前用户获取 ${USER}
			sudo service docker restart				
	
			systemctl start docker #开启docker
			systemctl enable docker #设置开机自启
			
			systemctl daemon-reload
			systemctl restart docker 
			docker ps
			docker --version
			
			[web@localhost ~]$ docker --version
			Docker version 25.0.4, build 1a576c5
			[web@localhost ~]$
	
		3、CentOS7服务器部署nvidia-docker
			一、设置nvidia-docker的存储库和 GPG 密钥
				distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
			二、更新包列表后安装包和依赖项
				yum clean expire-cache
				
			三、安装nvidia-docker
				nvidia-docker1已被弃用,可直接安装nvidia-docker2,使用和nvidia-docker一样:
				sudo yum install -y nvidia-docker2
				
				然后重启docker
				sudo systemctl restart docker
				
			
				#1、paddle 测试成功
					[web@localhost ~]$ docker search cuda:10.2-cudnn8
					NAME DESCRIPTION STARS OFFICIAL
					jacklove2022/pytorch1.8-gpu 基础镜像为 nvidia/cuda:10.2-cudnn8-runtime-u… 1 
					jacklove2022/pytorch1.9-gpu 基础镜像为 nvidia/cuda:10.2-cudnn8-runtime-u… 0 
					tungluu2203/ubuntu16_cuda10 nvidia/cuda:10.2-cudnn8-devel-ubuntu16.04 + … 0 
					samyin/algo-env 基础镜像: nvidia/cuda:10.2-cudnn8-devel-ubun… 0 
					[web@localhost ~]$ 
					
					
					//setenforce 0 											# /usr/bin/docker: Permission denied 不运行这个会报无权限					
					//docker run -ti --name myGpu --gpus all -v /home/data/docker/web:/home/data --network=host --runtime=nvidia jacklove2022/pytorch1.8-gpu
									
					nvidia-docker pull registry.baidubce.com/paddlepaddle/paddle:2.6.0-gpu-cuda11.7-cudnn8.4-trt8.4
					docker run -d -t --name myPaddleGpu --gpus all -v /home/data/docker/web:/paddle --network=host --runtime=nvidia --restart=on-failure:5 registry.baidubce.com/paddlepaddle/paddle:2.6.0-gpu-cuda11.7-cudnn8.4-trt8.4 /paddle/python/paddld.sh
					docker start myPaddleGpu
					docker exec -ti myPaddleGpu /bin/bash
					nvidia-smi
					watch -n 1 nvidia-smi	
					watch -n 2 nvidia-smi -q -i 0 -d TEMPERATURE #每隔 2 秒刷新一次 查看温度 , 手动 记录日记+ 得开发定时器: nvidia-smi -q -i 0 -d TEMPERATURE >> 1.log
					
					pip install PyMySQL -i https://pypi.tuna.tsinghua.edu.cn/simple					
					pip install python-multipart -i https://pypi.tuna.tsinghua.edu.cn/simple # 文件上传
					pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
					pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
					//pip install Flask -i https://pypi.tuna.tsinghua.edu.cn/simple					
					
					
					在百度docker中安装pytoch					
						rwkv的v6最新版:		
							pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 # CUDA 11.7
							pip install pytorch-lightning==1.9.5 -i https://pypi.tuna.tsinghua.edu.cn/simple (不行就先安装这个先)
							pip install deepspeed wandb ninja -i https://pypi.tuna.tsinghua.edu.cn/simple
							
							
							验证gpu版是否安装成功:	
								>>> import torch
								>>> print(torch.__version__)
								0.4.0
								>>> print(torch.cuda.is_available())
								True						
							
							fastapi:
								#pip install fastapi uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple
								#pip install bottle -i https://pypi.tuna.tsinghua.edu.cn/simple
								#pip install websockets -i https://pypi.tuna.tsinghua.edu.cn/simple
								
								或是直接运行闻达包:
									pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
									
					
					在百度docker中安装tensorflow						
						pip install tensorflow-gpu==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
						pip install keras==2.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
						
						pip install tensorflow-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple
						pip install keras==2.1.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
						
						
						如果要安装GPU版本: 
							python36可能安装对应的这个版本: 可以下载官网的这个版本上安装: docker pull tensorflow/tensorflow:1.14.0-gpu
							
							docker列表:https://hub.docker.com/r/tensorflow/tensorflow/tags?page=23&page_size=&name=&ordering=
							
							docker run -ti --name tfGpu --network=host --gpus all --privileged=true --runtime=nvidia -v /root/ai/docker:/home/data bladerunnerlabs/lip2-tf1-dt2:latest
							docker start tfGpu
							docker exec -ti tfGpu /bin/bash
							nvidia-smi	
							
							python #发现居然用的是python2.7并还兼容了,奇葩											
						
					
					#设置权限
					sudo chown -R web:web /home/data/docker/web	
					sudo chown -R polkitd:polkitd /home/data/docker/web/mysql/data/			
					
				//#3、pytoch
				//	nvidia-docker pull nvcr.io/nvidia/pytorch:23.02-py3		
				//	docker run -d -t --name myPytochGpu --gpus all --privileged --network=host --runtime=nvidia --restart=on-failure:5 -v /root/ai:/paddle nvcr.io/nvidia/pytorch:23.02-py3 /bin/bash
				//	docker start myPytochGpu
				//	docker exec -ti myPytochGpu /bin/bash	
					
					
				#4、tensorflow				
					nvidia-docker pull gg22mm/python:tensorflow2.11.0-gpu-py38-roop-ffmpeg-insightface_v4
					
				
				检查环境 - 检查是否有gpu:
	
				>>> import torch
				>>> torch.cuda.is_available()
				True
				
				
				>>>import tensorflow as tf
				>>>print(tf.test.is_gpu_available())
				True
				
				import paddle 
				paddle.utils.run_check()


------------------- 其它用法 ------------------- 

Dockerfile 安装

1、下载Dockerfile 放在一个目录中

2、执行
	docker build -t isk . 注意cd到Dockerfile目录下, 执行,别忘记后面有一个点. 其中 isk 是镜像images名, 可以自定义


sudo systemctl start docker		
sudo systemctl stop docker		
如果docker启动失败:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/102765506		(出错: 为containerd.io版本太低,当前安装要大于 1.2.2-3的版本才行)
							问题: package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
							- cannot install the best candidate for the job
							- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
							- package containerd.io-1.2.2-3.el7.x86_64 is excluded
							- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
							- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
							- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
							(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
sudo docker ps
sudo docker rmi -f redis 	加-f 强制删除		
sudo docker rm : 			删除一个或多个 容器
sudo docker rmi : 			删除一个或多个 镜像 //首先docker rmi时指定名称,而非image id,然后再执行docker rmi -f image idj即可:
sudo docker prune:			用来删除不再使用的 docker 对象(一般不过) 					
		

//docker修改端口(docker运行时修改端口)
	//1、之前8080指向80: docker run -p 8080:80 nginx
	//2、改成8081指向80: docker container update --publish-add 8081:80 nginx
	//3、删除8081端口映射:docker container update --publish-rm 8081 容器名或容器id

三、Docker 自定义
sudo docker ps																												//查看已启动容器
sudo docker ps -a																											//查看所有容器
sudo docker images 																											//查看已安装镜像	
sudo docker pull centos:7 																									//获取最新版的 centos 镜像	,最好不要用centos:latest 这个是不支持ll命令

php安装	
用镜像生成容器,容器名为php73,--expose 9000 开放一个端口或一组端口(被坑死了这里,这里不象是ningx 是开放映射端口,这里指的是开放内网端口,nginx会通过这个内网端口进行php访问。另一个坑就是php与nginx必须同时共享一个目录:/usr/local/servers/docker/web做为web,要不然他们都是自己的容器里运行,静态的图片与html用的是nignx的容器,php又是用另一个容器,导致两边的文档都要必须保持一样才对正常访问,绝对是个悲剧,这里被坑得也很惨)		 	
sudo docker run -ti --name php73 -v /usr/local/servers/docker/web:/usr/local/servers/web:rw --expose 9000 php73 			//用此命令时行生成php容器	
																															命令说明:
																																--name php73 : 将容器命名为 php73	, 9000后的那个php73是php的镜像名(可从网站下载或自己建立镜像)
																																-v /usr/local/servers/docker/php73:/usr/local/servers/php73 //将主机中项目的目录 php73 挂载到容器的 php73,并设置权限rw(读写)
																																-v /usr/local/servers/docker/web:/usr/local/servers/web:rw	//设置web路径,这个到时要与ningx、svn等保持一样
																																--expose 9000								//开放端口,nginx会调用这个端口时行内网访问(因为nginx与php一般都在同一机子并同一个内网)
sudo docker start php73																										//启动容器
sudo docker exec -ti php73 /bin/bash																						//以后进入容器shell 
sudo docker inspect php73 | grep "IPAddress"																					//查看ip
sudo docker inspect mysql57 查看内网id,mysql用 看:"IPAddress"
sudo docker inspect nginx16 查看容器内网ip "Gateway": "172.17.0.1" 			这个ip是不会变的	
netstat -nelp				查看开放的端口

安装python自动部署环境:

对(需要nginx更新签名的服务器安装) python 的 Flask 支持上api接品,实现上传并重启。

1、 过pyenv安装和管理多个Python版本
	
	# 安装pyenv的依赖
		yum install git lrzsz gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel tk-devel libffi-devel xz-devel -y
							
	# 安装pyenv
		curl https://pyenv.run | bash

	# 将以下内容添加到~/.bashrc文件中,然后执行 source ~/.bashrc
		export PATH="$HOME/.pyenv/bin:$PATH"
		eval "$(pyenv init --path)"
		eval "$(pyenv init -)"
		eval "$(pyenv virtualenv-init -)"
		
	# 检查
		pyenv --version
		
	# 安装一个Python 3版本(太慢不,不建议)
		#// pyenv install 3.12.0	
		
		# 创建缓存目录
			mkdir -p ~/.pyenv/cache
		
		# 清理可能的缓存
			rm -rf ~/.pyenv/cache/*		
		
		# 进入缓存目录 
			cd ~/.pyenv/cache
		
		# 用迅雷下载: https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz
			rz 上传
		
		# 重新安装
		pyenv install 3.12.0								
			
	# 设置为全局默认版本
		pyenv global 3.12.0						
	
		
	# 创建虚拟环境
		python3 -m venv cert_api
		
		# 激活虚拟环境
		source cert_api/bin/activate
		
		pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple						
	
	# 验证安装
	python -c "import fastapi; print(fastapi.__version__)"


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
{__SCRIPT__}