首页 > 系统相关 >史上最全的Linux常用软件安装教程【包含Docker安装】

史上最全的Linux常用软件安装教程【包含Docker安装】

时间:2024-07-23 10:41:59浏览次数:14  
标签:develop -- 安装 usr conf Linux docker local 常用软件

@

目录

1.系统版本

环境版本:CentOS Linux release 7.9.2009 (Core),含GNOME桌面。

安装包:CentOS-7-x86_64-DVD-1810.iso

系统内核版本(默认使用第一个):

  • CentOS Linux (5.4.254-1.e17.elrepo.x86_64) 7 (Core)
  • CentOS Linux (3.10.0-1160.99.1.e17.x86_64) 7 (Core)
  • CentOS Linux (0-rescue-8bb4fc8e956549ef89b281acc8ac2dda) 7 (Core)

硬件参数配置:2核/4G内存/40G存储/1网卡

账户密码:

  • 超级管理员:root / root
  • 普通用户: test/ test

默认IP:192.168.231.130

2.已安装软件

(1)常规方式安装的软件

所有的软件都在/usr/local/develop目录下, 内部都保留了安装包
对于已经配置了环境变量path的,在任意位置都可以执行命令,不需要去特定的目录下

序号 软件 安装路径 版本信息 备注
1 JDK8 /usr/local/develop/jdk8 jdk-8u231-linux-x64.tar.gz 替换OpenJDK,并已配置JAVA_HOME和path
2 Maven /usr/local/develop/maven apache-maven-3.6.3-bin.tar.gz 已配置MAVEN_HOME和path
3 Tomcat /usr/local/develop/tomcat apache-tomcat-9.0.29.tar.gz 已配置path,默认端口8080
4 MySQL /usr/local/develop/tomcat mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 已修改编码UTF-8,账密root/root,默认端口3306
5 Redis /usr/local/develop/redis redis-6.2.4.tar.gz 已配置path,默认端口6379
6 Zookeeper /usr/local/develop/zookeeper apache-zookeeper-3.5.6-bin.tar.gz 已配置path,默认端口2181
7 Kafka /usr/local/develop/kafka kafka_2.12-2.2.1.tgz 已配置path,默认端口9092
8 nginx /usr/local/develop/nginx nginx-1.18.0.tar.gz 已配置path,默认端口80
9 Nacos /usr/local/develop/nacos nacos-server-2.2.3.tar.gz 默认端口8848
10 Docker - 24.0.5 -
11 ElasticSearch /usr/local/develop/elasticSearch elasticsearch-7.4.0-linux-x86_64.tar.gz 不能以root账号启动
访问端口:9200
12 Elasticsearch-head /usr/local/develop/elasticsearch-head elasticsearch-head-5.0.0.tar.gz 默认端口9100
13 Kibana /usr/local/develop/kibana kibana-7.4.0-linux-x86_64.tar.gz 不建议使用root账户启动,添加参数 –allow-root强制root账户启动
访问端口:5601。
已汉化
14 Node /usr/local/develop/nodejs node-v12.13.1-linux-x64.tar.xz 已配置path
15 RocketMQ /usr/local/develop/rocketmq rocketmq-all-5.1.3-bin-release.zip 已配置path,NameServer端口9876
16 Grunt - 1.4.3 -
17 lrzsz yum安装 - 从Windows端上传文件至Linux端命令rz
从Linux端下载文件至Windows端命令sz
18 OpenResty /usr/local/openresty - yum安装
19 Python /usr/local/develop/python Python-3.12.0.tgz Python-3.12.0是解压包,python3.12.0是编译后的安装包
20 MQTT /usr/local/develop/mqtt mosquitto-1.4.10.tar.gz 端口:1883 账密:test/test

(2)docker安装的软件

所有容器的主机映射都挂载在/usr/local/develop/docker-app目录下

序号 软件 挂载路径的目录映射 版本信息 备注
1 MySQL /usr/local/develop/docker-app/mysql 5.7或8.0.27 端口:3306
2 Tomcat /usr/local/develop/docker-app/tomcat 10.0.14 端口:8080
3 Redis /usr/local/develop/docker-app/redis 6.2.6 端口:6379
4 nginx /usr/local/develop/docker-app/nginx 1.21.5 端口:80
5 RocketMQ /usr/local/develop/docker-app/rocketmq 4.4.0 端口:9876
6 Kafka /usr/local/develop/docker-app/kafka 2.13-2.8.1 端口:2181
7 Zookeeper /usr/local/develop/docker-app/zookeeper 2.13-2.8.1 端口:9092
8 ElasticSearch /usr/local/develop/docker-app/elasticsearch 8.2.0 端口:9200
超级管理员账密:
elastic elastic
test test
9 Kibana /usr/local/develop/docker-app/kibana 8.2.0 端口:5601
10 Nacos /usr/local/develop/docker-app/nacos 2.0.3 端口:8848
11 Canal /usr/local/develop/docker-app/canal latest 端口:11111
12 MQTT /usr/local/develop/docker-app/mqtt 2.0.14 端口:1883
账密:test/test

注意

  1. 所有软件都是root账户安装的,操作的时候请使用root用户
  2. 本虚拟机默认IP地址是:192.168.231.130。需要将IP修改为192.168.你的VMNet8网段.130才能正常通讯,修改步骤如下:

3.修改IP步骤

  1. 确认VMNet8网卡网段

    打开VMWare,点编辑菜单下的虚拟网络编辑器,在弹出的窗口中选择VMNet8,查询窗口左下角的子网IP中第三段,即为我们需要的网卡网段

    获取root权限

    su root
    # 输入root密码,输入的时候没有任何提示,输入完回车就可以了。
    
  2. 修改网卡配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
  3. 修改文件内容

    快捷键dd可以删一行,多次按键删除所有内容;

    按i<小写>进入插入模式,把下面的内容粘贴

    注意:网段改成你自己VMNet8的,改两个地方

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static
    IPADDR=192.168.你的VMNet8网卡网段.130	 #ip地址
    NETMASK=255.255.255.0		        #子网掩码
    GATEWAY=192.168.你的VMNet8网卡网段.2   #网关
    DNS1=119.29.29.29 			        #dns服务器1
    DNS2=114.114.114.114 		        #dns服务器2
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=2c2371f5-ef29-4513-a468-c4904bd11c82
    DEVICE=ens33
    ONBOOT=yes
    

    改完后,按Esc ,再shift+分号,再输入wq保存退出<分号要是英文状态下的,中文无效>

  4. 重启网络服务

    systemctl restart network
    
  5. 查看IP是否修改成功

    ifconfig
    
  6. ping宿主机网络网关/网卡地址(百度),验证网络是否联通

    ping 192.168.你的宿主机网段.1
    ping 你的宿主机IP
    

4.Tips

1.防火墙

1.CentOS:
#开放防火墙 9876 和 10911 端口
firewall-cmd --zone=public --add-port=9876/tcp --permanent
#删除开放的端口号命令
firewall-cmd --zone=public --remove-port=10911/tcp --permanent
#更新防火墙规则(无需断开连接,动态添加规则)
firewall-cmd --reload
#查看防火墙所有开放的端口
firewall-cmd --list-port
#临时关闭防火墙
systemctl stop firewalld
#禁止开机启动
systemctl disable firewalld
#查看firewall的状态
systemctl status firewalld

2.Ubuntu:
#删除指定端口的规则:
sudo ufw delete allow <port_number>
例如,要删除允许的端口 80 的规则:
sudo ufw delete allow 80
#删除指定规则:
sudo ufw delete <rule>
例如,要删除允许所有 ICMP 流量的规则:
sudo ufw delete allow icmp
#删除指定规则及端口:
#如果你想删除一条特定的规则,可以先列出当前的规则并找到规则的编号,然后使用 delete 命令删除它。比如,列出规则:
sudo ufw status numbered
#找到要删除的规则的编号,然后使用 delete 命令删除它:
sudo ufw delete <rule_number>
例如:sudo ufw delete 3

2.设置jar包开机自启动

方式一(强烈推荐):service形式

#在Linux系统中,每个service都需要一个对应的service文件,保存在“/etc/systemd/system”目录中。可以在该目录下创建一个新的service文件,比如“runtest.service”。

#1.创建service文件
cd /etc/systemd/system
vim xxx.service
#2.添加下面的配置
[Unit]
##表示对该服务的描述
Description=test
##指定该服务应在哪些其他服务启动之后启动
After=syslog.target network.target
[Service]
##工作目录
WorkingDirectory=/usr/local/develop/project
##jdk路径以及启动jar文件命令
ExecStart=/usr/local/develop/jdk8/jdk1.8.0_231/bin/java -jar /usr/local/develop/project/xxx.jar
##指定服务运行的用户和组,可以不指定
#User=root
#Group=root
SuccessExitStatus=143
TimeoutStopSec=10
##服务在故障后是否自动重启,on-failure,表示任何意外的失败,就将重启
Restart=on-failure
##表示 Systemd 重启服务之前,需要等待的秒数
RestartSec=5
[Install]
##指定服务应在哪个target中启动
WantedBy=multi-user.target
#3.启动程序
systemctl start xxx.service
#4.查看状态
systemctl status xxx.service
#5.添加到自启动
systemctl enable xxx.service
#6.重新加载系统管理守护进程 (systemd) 的配置文件
systemctl daemon-reload

此方法用于创建服务,可以使脚本在Linux系统开机后自动运行,但不依托于/etc/rc.d/rc.local 文件

方式二:sh形式

#1.新建启动JAR包的sh文件,此sh文件,命名为startup.sh
touch startup.sh
vim startup.sh
#添加配置,用你的项目名称代替XXX
nohup java -jar xxx.jar > xxx.log  &
#2.编辑文件
vim /etc/rc.d/rc.local
#添加配置
cd /usr/local/develop
sh /usr/local/develop/startup.sh
##说明
第一句为进入你项目所在的目录,我这里把项目放在/usr/local/develop下
第二句执行该目录下的sh文件
如果不提前进入所在目录,直接执行第二句,也会开机自启动,但是日志文件会在根目录下的log文件中。只有先进入,再执行,项目的日志文件才会在develop文件夹下
#develop下文件中有jar包、startup.sh、以及jar包的日志文件logs
#3.设置执行权限
chmod +x /etc/rc.d/rc.local
chmod +x /usr/local/develop/startup.sh
#4.执行命令:reboot,重启服务器
#5.重启后执行命令查看jar包是否自启动成功。
ps -ef |grep jar

多服务同时启动/关闭

#1.编写启动脚本
sudo vim start_xxx_service.sh
#2.将下面的配置粘贴进去
```bash
#!/bin/bash
# 列出所有符合条件(XXX-*.service)的服务 $1代表第一列
services=$(systemctl list-unit-files | grep '^XXX-.*\.service' | awk '{print $1}')
# 启动/关闭每个服务 start/stop
for service in $services; do
	# 检查服务状态
	# --quiet选项确保systemctl只返回状态而不输出任何内容。如果服务未运行,systemctl is-active --quiet将返回非零状态码,因此!运算符表示条件为真。
    if !systemctl is-active --quiet $service; then
        # 如果服务未运行,则启动它
        sudo systemctl start $service
    fi
done
```
#3.设置执行权限
sudo chmod +x start_xxx_service.sh
#4.启动
./start_xxx_service.sh

3.编辑文件

#删除文件:
sudo rm 文件名
sudo rmdir 文件夹名
sudo rm -rf * 删除当前目录下所有文件
#编辑文件:
vim 文件名
#创建文件:
vi 文件名      //创建并进入该文件
touch 文件名   //只是单纯创建,不进入该文件

#linux编辑文件后如何保存退出?
第一步:按ESC(电脑左上角的键)进入Command模式
第二步:输入 :wq (一定要是英文的)
第三步:按下回车键即可保存并退出。
补充:vi编辑时,保存文件过程中,第二步中,冒号后不同的输入对应不同的命令
wq(保存文件并退出)
w(保存文件但不退出)
q(直接退出而不保存文件)
w 文件名(将该文件另存,输入w,空格后输入即为新的文件名)

#修改配置文件只读而无法修改:
sudo chmod 777 文件名    //在文件的所在目录下 执行该命令
sudo chmod 644 文件名    //完成之后要将权限修改回来,否则配置文件不生效

4.开机免密登录root

#该设置针对的是Centos
#1.修改/etc/gdm/custom.conf文件
vim /etc/gdm/custom.conf 
#2.在[daemon]下增加
AutomaticLoginEnable=true 
AutomaticLogin=root
#3.重启虚拟机
reboot

5.设置禁止自动锁屏

几分钟不用Centos,系统就自动锁屏了,这是一种安全措施。但对于大部分人而言,这是没有必要的,每次锁屏后重新解锁非常浪费时间。

解决办法:
(1)打开系统设置,找到“Power” 和"privacy"
(2)根据提示可以设置屏幕关闭和锁屏时间,设置选项“关闭”和“从不”即可搞定。

在这里插入图片描述

这样设置后屏幕就不会自动关闭和自动锁屏了。

6.安装搜狗输入法

#创建安装目录,并上传安装包
cd /usr/local/develop
mkdir sogoupinyin
cd sogoupinyin
#1、切换root权限。
su root
#2、更新yum,更新比较耗时,不更新没试行不,自行斟酌是否跳过这一步。
yum update
#3、卸载ibus。
rpm -e --nodeps ibus
#4、安装epel源。
#yum -y install epel-release
#5、安装fcitx。
yum -y install fcitx fcitx-configtool
#6、安装拼音输入法。
yum -y install fcitx-pinyin
#7、安装依赖包。
yum -y install dpkg
yum -y install qtwebkit
#8、下载搜狗输入法。
wget http://cdn2.ime.sogou.com/dl/index/1524572264/sogoupinyin_2.2.0.0108_amd64.deb
#9、安装alien。
yum -y install alien
#10、deb包 转 rpm包 (在deb包目录下或指定deb包目录)。
alien -r --scripts sogoupinyin_2.2.0.0108_amd64.deb
#11、安装转换的rpm包。
rpm -ivh --force sogoupinyin-2.2.0.0108-2.x86_64.rpm
#12、复制搜狗拼音库。
cp /usr/lib/x86_64-linux-gnu/fcitx/fcitx-sogoupinyin.so /usr/lib64/fcitx/
13、修改权限。
chown -R 776 /usr/share/fcitx-sogoupinyin/
#14、添加QT依赖。
yum install fcitx-qt5 fcitx-configtool -y
#15、配置修改/etc/profile。
vim /etc/profile 
//添加下列内容到文件末尾
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
#16、弹出输入法配置框。
fcitx -r; fcitx-configtool
#17、添加开机自启动,依次点击左上角:应用程序->附件->优化->开机自启动,然后点击加号添加fcitx。
#18、reboot重启虚拟机。
#19、使用ctrl+space 快捷键 或 点击右上角键盘图标切换到搜狗输入法,安装完成。

在这里插入图片描述

7.环境变量配置汇总

##########################################环境变量配置################################################

#JDK8配置
export JAVA_HOME=/usr/local/develop/jdk8/jdk1.8.0_231
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

#MAVEN配置
export MAVEN_HOME=/usr/local/develop/maven/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin

#Tomcat配置
export TOMCAT_HOME=/usr/local/develop/tomcat/apache-tomcat-9.0.29
export PATH=$PATH:$TOMCAT_HOME/bin

#Redis配置
export REDIS_HOME=/usr/local/develop/redis/redis-6.2.4
export PATH=$PATH:$REDIS_HOME/bin

#zookeeper配置
export ZOOKEEPER_HOME=/usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
export ZK_LOG_DIR=/usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin/logs

#kafka配置
export KAFKA_HOME=/usr/local/develop/kafka/kafka_2.12-2.2.1
export PATH=$PATH:$KAFKA_HOME/bin

#nginx配置
#export NGINX_HOME=/usr/local/nginx
#export PATH=$PATH:$NGINX_HOME/sbin

#nodejs配置
export NODE_HOME=/usr/local/develop/nodejs/node-v12.13.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin

#RocketMQ配置
export ROCKETMQ_HOME=/usr/local/develop/rocketmq/rocketmq-all-5.1.3-bin-release
export PATH=$PATH:$ROCKETMQ_HOME/bin
export NAMESRV_ADDR=127.0.0.1:9876

#openresty配置
export OPENRESTY_HOME=/usr/local/openresty/nginx
export PATH=${OPENRESTY_HOME}/sbin:$PATH

#elasticsearch配置
export ELASTICSEARCH_HOME=/usr/local/develop/elasticsearch/elasticsearch-7.4.0/
export PATH=:$PATH:${ELASTICSEARCH_HOME}/bin

#kibana配置
export KIBANA_HOME=/usr/local/develop/kibana/kibana-7.4.0-linux-x86_64
export PATH=:$PATH:${KIBANA_HOME}/bin

#搜狗输入法配置
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

####################################################################################################

8.Docker常用命令

#通过命令启动docker:
systemctl start docker  # 启动docker服务
systemctl stop docker  # 停止docker服务
systemctl restart docker  # 重启docker服务
systemctl status docker  # 查看docker服务状态
systemctl enable docker  # docker自启动
#最终确认docker是否是自启动:
#输出为 enabled 则为自启动,输出为 disabled 则不是自启动
systemctl is-enabled docker

#查看docker版本:
docker -v
#删除容器的命令,删除前如果容器在运行中,要先停止
docker rm 容器名
#如果你不知道容器的名称,可以使用docker ps -a命令查看所有容器,其中包括其名称和ID。
docker ps -a
#查看正在运行的容器
docker ps
#进入容器的命令
docker exec -it 容器名称 /bin/bash
#运行容器
docker start 容器名称
#停止容器
docker stop 容器名称
#给容器重命名
docker rename 旧容器名 新容器名
--------------------------------------------------------------------------------------------------------------
#制作新的镜像(将docker中已经配置好的容器导出为新镜像)
docker commit 容器id 新镜像名称
#查看镜像的id
docker images
#导出镜像为tar格式的包
docker save 镜像id > /路径/xxx.tar
#加载镜像到docker中
docker load < xxx.tar
#给镜像重命名
docker tag 镜像id 新镜像名称:版本
--------------------------------------------------------------------------------------------------------------
#查看镜像:
docker images 或 docker image ls
#删除镜像:
docker rmi 镜像名或者镜像id
#查看卷:
docker volume ls
#查看容器详细信息,容器的ip
docker inspect 容器id/容器名称
#查看容器启动日志
docker logs 容器id/容器名称
--------------------------------------------------------------------------------------------------------------
#开启容器自启动
#在docker启动容器时可以增加参数
docker run –-restart=always
#容器已经启动,通过update命令进行修改
docker update –-restart=always <CONTAINER ID>
#关闭自启
#容器关闭自启动:
docker update --restart=no <CONTAINER ID>
#取消所有容器自启动
docker update --restart=no $(docker ps -q)
#容器是否是自启动:
#输出 always 或者 unless-stopped,说明该容器被配置为自启动。如果返回no,则说明容器没有被配置为自启动。
docker inspect --format '{{ .HostConfig.RestartPolicy.Name }}' <container_name_or_id>
--------------------------------------------------------------------------------------------------------------
#查看所有当前可用的Docker网络
docker network ls
#删除网络
docker network rm 网络名称
#查看所有未使用的网络并删除
docker network prune
#创建自定义网络(默认是桥接模式)
## 方式一
docker network create 网络名称
## 方式二:指定IP和网关
docker network create --subnet=172.10.0.0/16 --gateway=172.10.0.1 网络名称
## 方式三:创建网络并绑定物理网卡,网络模式 macvlan bridge
docker network create -d macvlan  --subnet=172.16.86.0/24  --gateway=172.16.86.1  -o parent=eth0 网络名称
#解除容器绑定的网络
docker network disconnect 网络名称 容器名称
#为容器重新指定网络
docker network connect 网络名称 容器名称
#为容器重新指定网络和ip
docker network connect  网络名称 容器名称 --ip 192.168.252.10
--------------------------------------------------------------------------------------------------------------
#容器文件复制到本地目录
docker cp 容器名称:容器中的目录 本地目录的路径
例:docker cp tomcat:/usr/local/tomcat/conf /usr/local/develop/docker-app/tomcat
#容器文件映射到本地目录(挂载)
docker run -v 本地目录的路径:容器中的目录 容器名称或者容器id
例:docker run -v /usr/local/develop/docker-app/tomcat/conf:/usr/local/tomcat/conf tomcat
--------------------------------------------------------------------------------------------------------------

9.升级系统内核

#1.查看系统版本
cat /etc/redhat-release
#2.查看当前默认使用的内核版本
uname -r
#3.查看现有内核启动顺序
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
#4.更源仓库,时间会比较长一点。
yum -y update
#5.导入密钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#6.安装yum源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#7.查看可以安装的内核版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
#8.安装最新版内核
yum -y --enablerepo=elrepo-kernel install kernel-lt
#9.编辑grub文件,把GRUB_DEFAULT=saved改成GRUB_DEFAULT=0
vim /etc/default/grub
#或者,设置好新的内核启动项
grub2-set-default 0
#10.根据/etc/default/grub自动生成开机配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
#11.重启机器生效
reboot
#12.再次看看更新好了没
uname -r

在这里插入图片描述

10.Linux查看系统信息命令

#查看CPU的相关信息。
lscpu
#查看内存的使用情况,-h 参数是为了让信息更易读。
free -h
#查看磁盘的使用情况,-h 参数同样有用。
df -h
#查看块设备(例如磁盘和分区)。
lsblk
#查看磁盘分区表。
fdisk -l
#查看内核版本和系统架构。
uname -a
#查看系统的主机名和相关配置。
hostnamectl
#查看CentOS系统的版本信息。
cat /etc/*release
#查看详细的内存信息。
cat /proc/meminfo
#查看详细的CPU信息
cat /proc/cpuinfo

11.其他命令

#windows端口占用
#查看占用端口(9200)的pid
netstat -ano|findstr 8080
#杀死pid为18468的进程
taskkill /f /pid "18468"
#linux端口占用
#要查看特定端口的占用情况,例如查看端口 8080,可以使用:
sudo lsof -i :8080
#杀死PID为23612的进程,可以使用 kill 或 kill -9 命令,其中 -9 是一个更强制的终止信号
sudo kill 23612
sudo kill -9 23612
--------------------------------------------------------------------------------------------------------------
#java占用程序
ps -ef|grep java
#查看磁盘具体占用
df -h
#查看内存占用
free -h

5.常规方式安装软件和启动步骤

1.JDK8

#1.先卸载open-jdk
rpm -qa | grep java #查询openjdk对应的版本信息
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 #逐个卸载,后面复制粘贴版本信息即可
#2.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir jdk8
cd jdk8
#3.解压安装包
tar -xzvf jdk-8u231-linux-x64.tar.gz -C /usr/local/develop/jdk8
#4.修改环境变量
vim /etc/profile 
复制到文件的最末尾:
export JAVA_HOME=/usr/local/develop/jdk8/jdk1.8.0_231
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
#5.刷新配置文件
source /etc/profile
#6.查看java版本信息
java -version

在这里插入图片描述

2.Maven

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir maven
cd maven
#2.解压安装包
tar -xzvf apache-maven-3.6.3-bin.tar.gz -C /usr/local/develop/maven
#3.解压完毕以后,新建一个repository仓库,用于存放Maven下载下来的jar包
mkdir maven_local_repository
#4.编辑settings.xml文件
vi apache-maven-3.6.3/conf/settings.xml
#5.设置Maven仓库,就是我刚才新建的文件夹
<localRepository>/usr/local/develop/maven/maven_local_repository</localRepository>
#6.配置为阿里云镜像地址 
<mirror>
   <id>nexus-aliyun</id>
   <mirrorOf>central</mirrorOf>
   <name>Nexus aliyun</name>
   <url>https://maven.aliyun.com/repository/public</url>
</mirror>
#7.配置环境变量
vim /etc/profile
#添加下面的配置
export MAVEN_HOME=/usr/local/develop/maven/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
#8.运行以下命令使profile文件生效 
source /etc/profile
#9.检查环境配置是否成功
mvn -v

在这里插入图片描述

3.Tomcat

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir tomcat
cd tomcat
#2.解压安装包
tar -xzvf apache-tomcat-9.0.29.tar.gz -C /usr/local/develop/tomcat
#3.配置环境path
vim /etc/profile
#添加下面的配置
#Tomcat配置
export TOMCAT_HOME=/usr/local/develop/tomcat/apache-tomcat-9.0.29
export PATH=$PATH:$TOMCAT_HOME/bin
#4.运行以下命令使profile文件生效 
source /etc/profile
#5.启动/关闭 Tomcat
tomcat 解压缩后就可以使用了,用 cd 命令切换到 tomcat 主目录下的 bin 目录
./startup.sh
./shutdown.sh
由于已经配置了环境变量了,在任意位置都可以执行命令
在浏览器中访问 tomcat,要关闭linux的防火墙

在这里插入图片描述

4.MySQL

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir mysql
cd mysql
#2.解压安装包
tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C /usr/local/develop/mysql
#3.安装客户端
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm --force --nodeps
#4.安装服务端
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm --force --nodeps
#5.修改mysql默认字符集
vi /etc/my.cnf
添加如下内容:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
-- 在文件最下方添加
[client]
default-character-set=utf8
#6.启动mysql服务,在Linux中MySQL安装好了之后系统会自动的注册一个服务,服务名称叫做mysqld,所以可以通过以下命令操作MySQL:
启动 MySQL 服务:systemctl start mysqld
重启 MySQL 服务:systemctl restart mysqld
关闭 MySQL 服务:systemctl stop mysqld
#7.登录mysql,rpm安装MySQL会自动生成一个随机密码,可在/var/log/mysqld.log这个文件中查找该密码
查看初始密码:cat /var/log/mysqld.log
mysql -u root -p (密码  敲回车)
密码类似ohHmyrmQE1!D
在A temporay password is generated for root@localhost: ****密码**** ;root@localhost:后面的就是初始密码
#8.修改mysql登录密码
set global validate_password_policy=0;
set global validate_password_length=1;
set password=password('密码');
#9.授予远程连接权限
//授权
grant all privileges on *.* to 'root' @'%' identified by '密码';
//刷新
flush privileges;
#10.关闭Linux系统防火墙
systemctl stop firewalld
systemctl disable firewalld
#11.重启mysql服务
systemctl restart mysqld
#12.使用navicat工具连接mysql

修改全局时区设置可能需要数据库服务器重启才能生效:
-- 查看当前时区设置
SELECT @@global.time_zone, @@session.time_zone;
-- 修改时区设置为 '+08:00',表示东八区
SET GLOBAL time_zone = '+08:00';
SET time_zone = '+08:00';

在这里插入图片描述

5.Redis

(1)安装

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir redis
cd redis
#2.解压安装包
tar -xzvf redis-6.2.4.tar.gz -C /usr/local/develop/redis
#3.redis是c语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc,需要输入以下命令
yum install gcc
#4.进入redis-6.2.4,使用make命令进行编译将.c文件编译成.o文件
cd redis-6.2.4
make
编译成功之后会出现“It's a good idea to run 'make test'”的提示
#5.使用命令 进行安装 
make PREFIX=/usr/local/develop/redis/redis-6.2.4 install
安装完成会出现一个bin目录,里面的结构如下:
redis-benchmark   ----性能测试工具
redis-check-aof   ----AOF文件修复工具
redis-check-rdb   ----RDB文件检查工具(快照持久化文件)
redis-cli         ----命令行客户端
redis-sentinel    ----哨兵
redis-server      ----redis服务器启动命令
#6.修改配置文件
cd /usr/local/develop/redis/redis-6.2.4
vim redis.conf
进入后使用编辑模式进行修改以下部分
将bind 127.0.0.1 -::1 替换为bind  0.0.0.0
将 daemonize on  替换成  daemonize yes

(2)启动

cd /usr/local/develop/redis/redis-6.2.4
如果输入以下第一个命令无法启动  提示./redis.conf没有权限  在输入命令这个命令即可
chmod 777 redis.conf
#启动redis服务 
bin/redis-server ./redis.conf
#查看已经启动的redis服务关闭redis服务
ps -ef|grep redis
#redis的客户端
bin/redis-cli

#关闭redis命令,需要先退出redis客户端
#退出redis客户端
exit
#关闭redis
bin/redis-cli shutdown
#查看关于redis 的进程
ps -ef|grep redis

在这里插入图片描述

6.Zookeeper

(1)安装

#1.环境准备
ZooKeeper服务器是用Java创建的,必须安装jdk
#2.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir zookeeper
cd zookeeper
#3.解压安装包
tar -xzvf apache-zookeeper-3.5.6-bin.tar.gz -C /usr/local/develop/zookeeper
#4.配置zoo.cfg
#进入到conf目录
cd /usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin/conf
#拷贝
cp zoo_sample.cfg zoo.cfg
#创建zooKeeper存储目录
cd /usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin/logs
mkdir zkData
#修改zoo.cfg
vim /usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin/conf/zoo.cfg
#进入修改页面后修改dataDir=/usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin/logs/zkData
#5.设置环境变量
vim /etc/profile 
#zookeeper配置
export ZOOKEEPER_HOME=/usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
export ZK_LOG_DIR=/usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin/logs
#6.使配置生效:
source /etc/profile

(2)启动

cd /usr/local/develop/zookeeper/apache-zookeeper-3.5.6-bin/bin
#启动
./zkServer.sh start
#关闭
./zkServer.sh stop
#查看ZooKeeper状态
./zkServer.sh status

在这里插入图片描述

7.Kafka

(1)安装

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir kafka
cd kafka
#2.解压安装包
tar -xzvf kafka_2.12-2.2.1.tgz -C /usr/local/develop/kafka
#3.配置环境变量
vim /etc/profile 
#kafka配置
export KAFKA_HOME=/usr/local/develop/kafka/kafka_2.12-2.2.1
export PATH=$PATH:$KAFKA_HOME/bin
#4.使配置生效:
source /etc/profile
5.配置config中的server.properties文件
cd /usr/local/develop/kafka/kafka_2.12-2.2.1/config
vim server.properties
#broker.id属性在kafka集群中必须要是唯⼀
broker.id=0
#kafka部署的机器ip和提供服务的端⼝号
listeners=PLAINTEXT://192.168.231.130:9092 
#kafka的消息存储⽂件
log.dir=/usr/local/develop/kafka/kafka_2.12-2.2.1/logs/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=192.168.231.130:2181

#另外:
kafka安装包内集成的有zookeeper,其实不用单独安装zookeeper。kafka在2.8之后就可以不用zookeeper来管理节点了
#配置zookeeper:
cd /usr/local/develop/kafka/kafka_2.12-2.2.1/config
vim zookeeper.properties
dataDir=/usr/local/develop/kafka/kafka_2.12-2.2.1/logs/zookeeper-logs

(2)启动

#启动
#先启动zookeeper,再启动kafka
cd /usr/local/develop/kafka/kafka_2.12-2.2.1/bin
zookeeper-server-start.sh ../config/zookeeper.properties
kafka-server-start.sh ../config/server.properties
#查看kafka进程
ps -ef | grep kafka
#停止后台运行
kafka-server-stop.sh
#验证kafka是否可以正常使用 ,运行kafka生产者发送消息
kafka-console-producer.sh --topic topic_1 --broker-list localhost:9092
#另打开窗口消费者消费消息
kafka-console-consumer.sh --bootstrap-server localhost:9092 - -topic topic_1 --from-beginning

在这里插入图片描述

注意:
Java或者kafka_tool连接不上虚拟机的kafka解决方法:
首先,关闭防火墙
其次在config/server.properties的配置文件中,要把这两行注释打开
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.231.129:9092

在这里插入图片描述

在这里插入图片描述

8.nginx

(1)安装

#1.安装nginx依赖
#安装gcc
yum install gcc-c++
#安装PCRE pcre-devel
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装Open SSL
yum install -y openssl openssl-devel
#2.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir nginx
cd nginx
#3.解压安装包
tar -xzvf nginx-1.18.0.tar.gz -C /usr/local/develop/nginx
#编译 执行命令 考虑到后续安装ssl证书 添加两个模块  如不需要直接执行./configure即可
cd nginx-1.18.0
./configure --with-http_stub_status_module --with-http_ssl_module
#执行make命令(要是执行不成功请检查最开始安装的四个依赖有没有安装成功)
make
#执行make install命令
make install

(2)启动

执行完上面的所有命令后,会在/usr/local目录下生成一个nginx文件夹
cd /usr/local/nginx/sbin
#配置环境
vim /etc/profile 
#nginx配置
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
#使配置生效:
source /etc/profile

# 默认配置文件启动
./nginx
# 指定配置文件启动
./nginx -c  /usr/local/nginx/conf/nginx.conf
cd /usr/local/nginx/sbin
# 停止指令
./nginx -s stop
# 或
./nginx -s quit
# 重启命令
./nginx -s reload
# 查看nginx进程
ps -ef|grep nginx

#设置开机自启动nginx
#编辑
vim /etc/rc.local
#最底部增加这一行
/usr/local/nginx/sbin/nginx
#若要修改监听端口,可打开nginx的配置文件进行修改。
# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

9.Nacos

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir nacos
cd nacos
#2.解压安装包
tar -xzvf nacos-server-2.2.3.tar.gz -C /usr/local/develop/nacos
#3.启动
cd /usr/local/develop/nacos/nacos/bin
sh startup.sh -m standalone
#4.验证是否启动成功
#访问地址 默认账号密码是nacos/nacos
http://ip:8848/nacos
#关闭
sh shutdown.sh

#Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。
#如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中的端口:
#进入nacos配置文件目录
cd /usr/local/develop/nacos/nacos/conf
#编辑nacos配置文件
vim application.properties

在这里插入图片描述

10.Docker

1.yum安装
#1.1如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce
#1.2安装docker,需要虚拟机联网,安装yum工具
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken
#1.3然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast
#1.4然后输入命令:docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
yum install -y docker-ce
#启动docker前,一定要关闭防火墙!!
# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
#通过命令启动docker:
systemctl start docker  # 启动docker服务
systemctl stop docker  # 停止docker服务
systemctl restart docker  # 重启docker服务
systemctl status docker  # 查看docker服务状态
#然后输入命令,可以查看docker版本:
docker -v

2.rpm安装
https://download.docker.com/1inux/centos/7/x86_64/stable/Packages/
找到最新的rpm包,然后:
yum -y install docker-ce-20.10.19-3.el7.x86_64.rpm
运行docker:
systemctl start docker

3.二进制安装
https://download.docker.com/linux/static/stable/x86_64/
#3.1找到最新的包下载,然后解压:
tar -zxvf docker-20.10.3.tgz
#3.2进入解压目录,将docker相关命令拷贝到 /usr/bin:
cp docker/* /usr/bin/
#3.3将docker加入系统服务使用systemctl控制:
vim /etc/systemd/system/docker.service
#3.4添加下面的内容
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
#3.5添加执行权限
chmod +x /etc/systemd/system/docker.service
#3.6重载配置文件
systemctl daemon-reload
#3.7运行docker:
systemctl start docker
#3.8添加自启动
systemctl enable docker.service

在这里插入图片描述

注意:

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

11.ElasticSearch

(1)安装

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir elasticsearch
cd elasticsearch
#2.解压安装包
tar -xzvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /usr/local/develop/elasticsearch
#3.创建普通用户(本linux中已经创建过了普通用户test,所以可以跳过此步骤)
#因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令
useradd test# 新增test用户
passwd  test# 为test用户设置密码
#4.为新用户授权,如下图
chown -R test:test/usr/local/develop/elasticsearch/elasticsearch-7.4.0 #文件夹所有者
将/usr/local/develop/elasticsearch/elasticsearch-7.4.0文件夹授权给test用户,由下图可见,我们的文件夹权限赋给了test
#5.修改elasticsearch.yml文件
vim /usr/local/develop/elasticsearch/elasticsearch-7.4.0/config/elasticsearch.yml 
# ======================== Elasticsearch Configuration =========================
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
#cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称
#node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
#network.host:设置为0.0.0.0允许外网访问
#http.port:Elasticsearch的http访问端口
#cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master

#ES默认不开启跨域访问,需要添加以下配置:
#配置
#开启cors跨域访问支持,默认为false 
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"

#6.修改配置文件
# 切换到root用户
su root
#6.1. ===最大可创建文件数太小=======
vim /etc/security/limits.conf
# 在文件末尾中增加下面内容
test soft nofile 65536
test hard nofile 65536
# =====
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
test soft nofile 65536
test hard nofile 65536
*  hard    nproc     4096
# 注:* 代表Linux所有用户名称	
#6.2. ===最大虚拟内存太小=======
vim /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
# 重新加载,输入下面命令:
sysctl -p

在这里插入图片描述

(2)启动

su test  # 切换到test用户启动
cd /usr/local/develop/elasticsearch/elasticsearch-7.4.0/bin
./elasticsearch #启动
#在访问elasticsearch前,请确保防火墙是关闭的


#安装ik分词器!!!!!
cd /usr/local/develop/elasticsearch/elasticsearch-7.4.0/plugins/
#创建ik目录并进入
mkdir ik-7.10.0
cd ik-7.10.0
#上传安装包并解压,然后删除安装包
unzip elasticsearch-analysis-ik-7.10.0.zip
rm elasticsearch-analysis-ik-7.10.0.zip
#修改配置文件
vim plugin-descriptor.properties
# 修改下面的内容
elasticsearch.version=你的es的版本(本文中是7.4.0)

在这里插入图片描述
在这里插入图片描述

重点几个关注下即可:
number" : "7.4.0" 表示elasticsearch版本
lucene_version" : "8.2.0" 表示lucene版本
name : 默认启动的时候指定了 ES 实例名称
cluster_name : 默认名为 elasticsearch

12.Elasticsearch-head

下载地址:https://github.com/mobz/elasticsearch-head/releases

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir elasticsearch-head
cd elasticsearch-head
#2.解压安装包
tar -xzvf elasticsearch-head-5.0.0.tar.gz -C /usr/local/develop/elasticsearch-head
#3.进入目录
cd elasticsearch-head-5.0.0
#在运行之前我们需要修改下elasticsearch.yml,因为ES默认不开启跨域访问,需要添加以下配置:
vim /usr/local/develop/elasticsearch/elasticsearch-7.4.0/config/elasticsearch.yml
#加入下面两个配置
#开启cors跨域访问支持,默认为false 
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"
#4.安装
npm install
#5.运行服务
npm run start
#或者后台启动
nohup npm run-script start &
#6.访问head
浏览器输入ip:port:9100,如下图

在这里插入图片描述

13.Kibana

#配合ElasticSearch使用
#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir kibana
cd kibana
#2.解压安装包
tar -xzvf kibana-7.4.0-linux-x86_64.tar.gz -C /usr/local/develop/kibana
#3.修改配置文件
vim /usr/local/develop/kibana/kibana-7.4.0-linux-x86_64/config/kibana.yml
# 在文件中修改下面内容
server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana-itcast"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.requestTimeout: 99999
i18n.locale: "zh_CN"
#server.port:http访问端口
#server.host:ip地址,0.0.0.0表示可远程访问
#server.name:kibana服务名
#elasticsearch.hosts:elasticsearch地址
#elasticsearch.requestTimeout:请求elasticsearch超时时间,默认为30000,此处可根据情况设置
#i18n.locale: 汉化
#4、启动kibana
由于kibana不建议使用root用户启动,如果用root启动,需要加--allow-root参数
# 切换到kibana的bin目录
cd /usr/local/develop/kibana/kibana-7.4.0-linux-x86_64/bin
# 启动
./kibana --allow-root

在这里插入图片描述

14.Node

cd /usr/local
mkdir develop
cd develop
mkdir nodejs
cd nodejs
#1.执行wget命令下载Node
wget https://nodejs.org/dist/v12.13.1/node-v12.13.1-linux-x64.tar.xz
#2.解压
tar -xvf node-v12.13.1-linux-x64.tar.xz -C /usr/local/develop/nodejs
#3.设置软连接
#解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:
ln -s bin/npm /usr/local/develop/nodejs/node-v12.13.1-linux-x64/bin/
ln -s bin/node /usr/local/develop/nodejs/node-v12.13.1-linux-x64/bin/
#4.配置环境变量
vim /etc/profile
export NODE_HOME=/usr/local/develop/nodejs/node-v12.13.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin
#5.运行以下命令使profile文件生效 
source /etc/profile
#6.查看版本信息
node -v

在这里插入图片描述

15.RocketMQ

(1)安装

#1.创建安装目录,并上传安装包
cd /usr/local
mkdir develop
cd develop
mkdir rocketmq
cd rocketmq
#2.解压安装包
unzip -d /usr/local/develop/rocketmq rocketmq-all-5.1.3-bin-release.zip
#如果没有安装 unzip,可以执行下面命令安装 
yum install -y unzip zip
#3.进入rocketmq安装目录
cd rocketmq-all-5.1.3-bin-release
#4.创建存放数据的目录
mkdir -p store store/commitlog store/consumequeue
#5.进入conf目录
cd conf
#6.编辑broker.conf文件
vi broker.conf
# 在broker.conf文件中追加下面内容
listenPort=10911
namesrvAddr=localhost:9876
storePathRootDir=/usr/local/develop/rocketmq/rocketmq-all-5.1.3-bin-release/store
storePathCommitLog=/usr/local/develop/rocketmq/rocketmq-all-5.1.3-bin-release/store/commitlog
storePathConsumerQueue=/usr/local/develop/rocketmq/rocketmq-all-5.1.3-bin-release/store/consumequeue
#7.修改内存大小(这步不是必须的,如果你的机器内存足够,可以跳过这步,笔者机器内存只有1g,因此需要修改内存大小)
#进入bin目录
cd /usr/local/develop/rocketmq/rocketmq-all-5.1.3-bin-release/bin
#编辑runbroker.sh文件和runserver.sh文件,修改内存大小
#编辑runbroker.sh文件,将 8g 修改为 512m
vi runbroker.sh
#编辑runserver.sh文件,都修改为 512m
vi runserver.sh
#8.配置环境变量
vim /etc/profile
export ROCKETMQ_HOME=/usr/local/develop/rocketmq/rocketmq-all-5.1.3-bin-release
export PATH=$PATH:$ROCKETMQ_HOME/bin
export NAMESRV_ADDR=127.0.0.1:9876
#运行以下命令使profile文件生效 
source /etc/profile
#9.开放防火墙 9876 和 10911 端口
firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent
#更新防火墙规则(无需断开连接,动态添加规则)
firewall-cmd --reload
#查看防火墙所有开放的端口
firewall-cmd --list-port

在这里插入图片描述
在这里插入图片描述

(2)启动

#在 bin 目录下,执行下面命令
nohup命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。&>后面指定隐藏的启动信息输出到指定文件,如果不指定默认输出到当前目录的nohup.out
#1.启动nameserver,下面命令任选其一
nohup sh mqnamesrv &> namesrv-out.txt
sh mqnamesrv
#2.启动 broker,下面命令任选其一
nohup sh mqbroker -n localhost:9876 -c ../conf/broker.conf &> broker-out.txt
./mqbroker -n localhost:9876 -c ../conf/broker.conf
#启动过程中会在/root/logs/rocketmqlogs/产生日志文件
tail -f ~/logs/rocketmqlogs/broker.log

#测试发送消息
#使⽤bin/tools.sh⼯具验证消息的发送,默认会发1000条消息
./tools.sh org.apache.rocketmq.example.quickstart.Producer 
#使⽤bin/tools.sh⼯具验证消息的接收
./tools.sh org.apache.rocketmq.example.quickstart.Consumer 

#关闭
sh mqshutdown broker
sh mqshutdown namesrv

在这里插入图片描述
在这里插入图片描述

16.Grunt

#安装grunt(运行在Node.js上面的任务管理器(task runner)),为了获得Grunt的更多产品特性,需要全局安装Grunt's 命令行接口(CLI),使用npm进行安装,如下:
npm install -g grunt-cli
#查看grunt版本
grunt --version
输出grunt版本信息,表示安装成功。

在这里插入图片描述

17.OpenResty

# 1.安装
首先你的Linux虚拟机必须联网
# **1)安装开发库**
首先要安装OpenResty的依赖开发库,执行命令:
yum install -y pcre-devel openssl-devel gcc --skip-broken
# **2)安装OpenResty仓库**
#你可以在你的 CentOS 系统中添加 `openresty` 仓库,这样就可以便于未来安装或更新我们的软件包(通过 `yum check-update` 命令)。运行下面的命令就可以添加我们的仓库:
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
#如果提示说命令不存在,则运行:
yum install -y yum-utils 
#然后再重复上面的命令
# **3)安装OpenResty**
#然后就可以像下面这样安装软件包,比如 `openresty`:
yum install -y openresty
# **4)安装opm工具**
#opm是OpenResty的一个管理工具,可以帮助我们安装一个第三方的Lua模块。
#如果你想安装命令行工具 `opm`,那么可以像下面这样安装 `openresty-opm` 包:
yum install -y openresty-opm
# **5)目录结构**
#默认情况下,OpenResty安装的目录是:/usr/local/openresty

看到里面的nginx目录了吗,OpenResty就是在Nginx基础上集成了一些Lua模块。
# **6)配置nginx的环境变量**
#打开配置文件:
vi /etc/profile
#在最下面加入两行:
export NGINX_HOME=/usr/local/openresty/nginx
export PATH=${NGINX_HOME}/sbin:$PATH

#NGINX_HOME:后面是OpenResty安装目录下的nginx的目录
#然后让配置生效:
source /etc/profile
# 2.启动和运行
#OpenResty底层是基于Nginx的,查看OpenResty目录的nginx目录,结构与windows中安装的nginx基本一致:
#所以运行方式与nginx基本一致:
# 启动nginx
nginx
# 重新加载配置
nginx -s reload
# 停止
nginx -s stop
#nginx的默认配置文件注释太多,影响后续我们的编辑,这里将nginx.conf中的注释部分删除,保留有效部分。
修改`/usr/local/openresty/nginx/conf/nginx.conf`文件,内容如下:
#user  nobody;
worker_processes  1;
error_log  logs/error.log;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8081;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
#在Linux的控制台输入命令以启动nginx:
nginx
#然后访问页面:http://192.168.231.130:8081,注意ip地址替换为你自己的虚拟机IP

在这里插入图片描述

# 3.备注
加载OpenResty的lua模块:
```nginx
#lua 模块
lua_package_path "/usr/local/openresty/lualib/?.lua;;";
#c模块     
lua_package_cpath "/usr/local/openresty/lualib/?.so;;";  
```

#common.lua
```lua
-- 封装函数,发送http请求,并解析响应
local function read_http(path, params)
    local resp = ngx.location.capture(path,{
        method = ngx.HTTP_GET,
        args = params,
    })
    if not resp then
        -- 记录错误信息,返回404
        ngx.log(ngx.ERR, "http not found, path: ", path , ", args: ", args)
        ngx.exit(404)
    end
    return resp.body
end
-- 将方法导出
local _M = {  
    read_http = read_http
}  
return _M
```

#释放Redis连接API:
```lua
-- 关闭redis连接的工具方法,其实是放入连接池
local function close_redis(red)
    local pool_max_idle_time = 10000 -- 连接的空闲时间,单位是毫秒
    local pool_size = 100 --连接池大小
    local ok, err = red:set_keepalive(pool_max_idle_time, pool_size)
    if not ok then
        ngx.log(ngx.ERR, "放入redis连接池失败: ", err)
    end
end
```

#读取Redis数据的API:
```lua
-- 查询redis的方法 ip和port是redis地址,key是查询的key
local function read_redis(ip, port, key)
    -- 获取一个连接
    local ok, err = red:connect(ip, port)
    if not ok then
        ngx.log(ngx.ERR, "连接redis失败 : ", err)
        return nil
    end
    -- 查询redis
    local resp, err = red:get(key)
    -- 查询失败处理
    if not resp then
        ngx.log(ngx.ERR, "查询Redis失败: ", err, ", key = " , key)
    end
    --得到的数据为空处理
    if resp == ngx.null then
        resp = nil
        ngx.log(ngx.ERR, "查询Redis数据为空, key = ", key)
    end
    close_redis(red)
    return resp
end
```

#开启共享词典:
```nginx
# 共享字典,也就是本地缓存,名称叫做:item_cache,大小150m
lua_shared_dict item_cache 150m; 
```

18.Python

#1.在Linux上安装Python需要先安装前置依赖程序。
yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make zlib zlib-devel libffi-devel -y
#2.创建安装目录
mkdir /usr/local/develop/python
cd /usr/local/develop/python
#3.进入官方网址https://www.python.org/,点击最上面的Downloads按钮,再点击Linux/UNIX按钮,选择Python Source Releases下面的最新版,滑到最下面,在Files文件列表中选择Gzipped source tarball在上面右键复制链接地址
#执行下面的命令下载安装包,后面为刚刚复制的地址
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
#4.解压
tar -xvf Python-3.12.0.tgz
#5.配置
cd Python-3.12.0
./configure --prefix=/usr/local/develop/python/python3.12.0
#6.编译
make && make install
#7.执行下面的命令,会看到centos默认自带的python版本为2.7.5,我们要替换成最新版的
/usr/bin/python
#8.删除系统自带的老版本(python2)的软链接
rm -f /usr/bin/python
#9.创建软链接替换老版本
ln -s /usr/local/develop/python/python3.12.0/bin/python3.12 /usr/bin/python
#10.验证安装
python

#注意:
#创建软链接后,会破坏yum程序的正常使用(只能使用系统自带的python2)
#将这2个文件的第一行,从#!/usr/bin/python修改为#!/usr/bin/python2
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down

在这里插入图片描述

19.MQTT

(1)安装软件

#1.输入以下指令
yum install gcc-c++
yum install cmake
yum install openssl-devel
#2.新建文件
新建个mqtt文件夹,下载mosquitto,下个不高不低的版本,并解压:
mkdir /usr/local/develop/mqtt
cd mqtt
wget http://mosquitto.org/files/source/mosquitto-1.4.10.tar.gz
tar -xzvf mosquitto-1.4.10.tar.gz
但这里还不能编译安装mosquitto
下面的三款扩展性软件,不安装也不影响mosquitto的使用:
#4、安装c-areas(支持异步DNS查找的库)
wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make
sudo make install
#5、安装lib-uuid(支持为每个连接客户端生成唯一uuid)
yum install libuuid-devel
#6、安装libwebsockets(支持需使用websocket的应用)
wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz
tar zxvf v1.3-chrome37-firefox30.tar.gz
cd libwebsockets-1.3-chrome37-firefox30
mkdir build
cd build
cmake .. -DLIB_SUFFIX=64
make install
#7、修改mosquitto的配置
我们修改一下mosquitto的配置:
cd mosquitto-1.4.10
vim config.mk
将里面的WITH_SRV:=yes和WITH_UUID:=yes都用#号注释掉
#8、安装mosquitto
接下来编译安装mosquitto:
make
sudo make install
注意: 如果在后续使用过程中找不到libmosquitto.so.1的话,在mqtt目录下输入以下指令修改一下libmosquitto.so的位置:
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
sudo ldconfig

(2)安全配置

#1、创建用户
sudo groupadd test
sudo useradd -g test test
#2、程序配置
创建配置文件
mv  /etc/mosquitto/mosquitto.conf.example  /etc/mosquitto/mosquitto.conf
#3、修改默认配置
#3.1.关闭匿名用户登录
打开mosquitto.conf文件( /etc/mosquitto/mosquitto.conf ),找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录。去掉前面的#,改为false。

在这里插入图片描述

#3.2.设置用户密码文件路径
找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路径(注意是绝对路径),在669行左右。
password_file /etc/mosquitto/pwfile 或者 /pwfile.example

在这里插入图片描述

#3.3.配置topic和用户
acl_file /etc/mosquitto/aclfile.example
#3.4.添加用户信息
终端输入,最后面的是用户名,之后自动弹出密码和确认密码,输入即可。(注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。)
mosquitto_passwd -c /etc/mosquitto/pwfile test
然后进入到/etc/mosquitto/mosquitto.conf 将下面两个用户名和密码加上。

在这里插入图片描述

(3)连接测试

#启动
需要切换到test用户才能启动
su test
cd /usr/local/sbin
./mosquitto -v -d  #-d后台启动 -v代码调试模式(verbose)可以输出更多的信息

1.下载客户端软件安装包,点击安装包直接安装 [MQTTX](https://mqttx.app/?spm=a2c6h.13046898.publish-article.21.25b16ffawphRSS)
2.界面一开始是英文,可以显示中文
3.主要填写名称,Client ID,服务器地址这三项,连接

在这里插入图片描述

在这里插入图片描述

6.Docker安装软件和启动步骤

1.MySQL

#1.在宿主机创建挂载容器的目录映射,创建目录用于存储数据信息
cd /usr/local/develop
mkdir docker-app
cd docker-app
mkdir mysql
cd mysql
#2.搜索mysql镜像
docker search mysql
#3.拉取mysql镜像
docker pull mysql:5.7
#4.创建容器,设置端口映射、目录映射
docker run -id \
-p 3306:3306 \
--name=mysql5 \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/var/log \
-v $PWD/data:/var/lib/mysql \
-v $PWD/file:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-e TZ=Asia/Shanghai \
mysql:5.7
#参数说明:
- **-p 3306:3306**:将容器的 3306 端口映射到宿主机的 3306 端口。
- **-v $PWD/conf:/etc/mysql/conf.d**:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置文件目录
- **-v $PWD/logs:/var/log**:将主机当前目录下的 logs 目录挂载到容器的 /var/log。日志目录
- **-v $PWD/data:/var/lib/mysql** :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
- **-v $PWD/file:/var/lib/mysql-files** :将主机当前目录下的file目录挂载到容器的 /var/lib/mysql-files 。导出sql文件的默认位置
- **-e MYSQL_ROOT_PASSWORD=root:**初始化 root 用户的密码。
#5.进入容器,操作mysql
docker exec -it mysql /bin/bash
mysql -u root -p
输入密码
#6.使用外部机器连接容器中的mysql
#7.启动容器命令
docker start mysql
#8.停止容器
docker stop mysql

----------------------------------------------------------------------------------------
#注意:
docker中安装了两个版本的MySQL,分别是5.7和8.0.27,都在/usr/local/develop/docker-app/mysql目录下

###mysql报错group by###
修改数据库配置文件my.cnf(永久生效)
mysql5的版本:在[mysqld]模块下新增一行配置:
sql-mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
mysql8的版本:在[mysqld]模块下新增一行配置:
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

#从数据库导出sql数据命令
SELECT *
INTO OUTFILE '/var/lib/mysql-files/file.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM 表名
WHERE DATE(timestamp) = '2024-03-15' AND TIME(`timestamp`) BETWEEN '08:00:00' and '09:00:00'; 

修改全局时区设置可能需要数据库服务器重启才能生效:
-- 查看当前时区设置
SELECT @@global.time_zone, @@session.time_zone;
-- 修改时区设置为 '+08:00',表示东八区
SET GLOBAL time_zone = '+08:00';
SET time_zone = '+08:00';

在这里插入图片描述

2.Tomcat

#1.在宿主机创建挂载容器的目录映射,创建目录用于存储数据信息
cd /usr/local/develop
mkdir docker-app
cd docker-app
mkdir tomcat
cd tomcat
#2.搜索镜像
docker search tomcat
#3.拉取镜像
docker pull tomcat:10.0.14
#4.先创建一个简单的容器
docker run -d -p 8080:8080 --name tomcat tomcat
#说明
#-d后台运行 -p指定端口号
#docker run -d -p 宿主机端口:容器端口 --name 容器名 镜像名
-------------------------------------------------------------------------------------------------
#5.解决访问tomcat404报错
#进入容器
docker exec -it tomcat /bin/bash
#以列表形式查看文件
ls -l
#查看webapps发现里面没东西,查看webapps.dist发现里面有东西(examples),因此删除webapps,将webapps.dist重命名为webapps
rmdir webapps
mv webapps.dist webapps
exit #退出容器
-------------------------------------------------------------------------------------------------
#6.复制容器内的默认配置文件到本地
docker cp tomcat:/usr/local/tomcat/conf /usr/local/develop/docker-app/tomcat
docker cp tomcat:/usr/local/tomcat/logs /usr/local/develop/docker-app/tomcat
docker cp tomcat:/usr/local/tomcat/webapps /usr/local/develop/docker-app/tomcat
#7.删除之前创建的容器
docker stop tomcat
docker rm tomcat
#8.创建最终的容器,并指定映射的配置文件
docker run -d -p 8080:8080 --name tomcat \
-v /usr/local/develop/docker-app/tomcat/conf:/usr/local/tomcat/conf \
-v /usr/local/develop/docker-app/tomcat/logs:/usr/local/tomcat/logs \
-v /usr/local/develop/docker-app/tomcat/webapps:/usr/local/tomcat/webapps \
tomcat
#9.启动容器命令
docker start tomcat
#10.停止容器
docker stop tomcat

在这里插入图片描述

3.Redis

cd /usr/local/develop/docker-app
mkdir redis
cd redis
#1. 搜索redis镜像
docker search redis
#2. 拉取redis镜像
docker pull redis
#因为 docker 安装运行 redis容器,是没有配置文件的,需要自己手动创建一个 redis.conf 文件
mkdir conf data log
vim conf/redis.conf
[粘贴或者上传redis.conf配置文件]
进入后使用编辑模式进行修改以下部分
将bind 127.0.0.1 -::1 替换为bind  0.0.0.0
将 daemonize on  替换成  daemonize yes
#3. 创建容器,设置端口映射
docker run -id --name redis -p 6379:6379 \
-v /usr/local/develop/docker-app/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /usr/local/develop/docker-app/redis/data/:/data \
-v /usr/local/develop/docker-app/redis/log/redis.log:/var/log/redis.log \
redis 
#4. 使用工具连接redis

在这里插入图片描述

4.nginx

#1.在宿主机创建挂载容器的目录映射,创建目录用于存储数据信息
cd /usr/local/develop
mkdir docker-app
cd docker-app
mkdir nginx
cd nginx
#2.搜索nginx镜像
docker search nginx
#3..拉取nginx镜像
docker pull nginx
#4. 先创建一个简单的容器,设置端口映射
docker run -id --name nginx -p 80:80 nginx
#4.复制容器内的默认配置文件到本地
mkdir -p conf logs html
docker cp nginx:/etc/nginx/nginx.conf /usr/local/develop/docker-app/nginx/conf/nginx.conf
docker cp nginx:/var/log/nginx /usr/local/develop/docker-app/nginx/logs
docker cp nginx:/usr/share/nginx/html /usr/local/develop/docker-app/nginx/html
#5.删除之前创建的容器
docker stop nginx
docker rm nginx
#6.修改配置文件
vim conf/nginx.conf
#7.创建最终的容器,并指定映射的配置文件
docker run -id --name nginx -p 80:80 \
-v /usr/local/develop/docker-app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/develop/docker-app/nginx/logs:/var/log/nginx \
-v /usr/local/develop/docker-app/nginx/html:/usr/share/nginx/html \
nginx

#另外:挂载容器内的文件映射到本地
docker run -v /usr/local/develop/docker-app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
docker run -v /usr/local/develop/docker-app/nginx/logs:/var/log/nginx nginx
docker run -v /usr/local/develop/docker-app/nginx/html:/usr/share/nginx/html nginx 

在这里插入图片描述

5.RocketMQ

(1)普通方式

#1.在宿主机创建挂载容器的目录映射,创建目录用于存储数据信息
cd /usr/local/develop
mkdir docker-app
cd docker-app
mkdir rocketmq
cd rocketmq
#2.搜索rocketmq镜像
docker search rocketmq
#3..拉取rocketmq镜像
docker pull rocketmqinc/rocketmq
docker pull pangliang/rocketmq-console-ng
#4.创建namesrv需要挂载的目录
mkdir -p /usr/local/develop/docker-app/rocketmq/logs /usr/local/develop/docker-app/rocketmq/store
#5.启动namesrv容器
docker run -d -p 9876:9876 --name rmqnamesrv \
-v /usr/local/develop/docker-app/rocketmq/logs:/home/rocketmq/logs \
-v /usr/local/develop/docker-app/rocketmq/store:/home/rocketmq/store \
rocketmq:4.4.0 \
sh mqnamesrv
#6.创建broker容器需要挂载的目录
mkdir /usr/local/develop/docker-app/rocketmq/conf
#7. 创建broker.conf文件
touch /usr/local/develop/docker-app/rocketmq/conf/broker.conf
cd conf
vim broker.conf
#添加下面的内容
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.231.130 #这里需要根据自己服务器IP替换
#8.启动broker容器
docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqnamesrv:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-v /usr/local/develop/docker-app/rocketmq/logs:/home/rocketmq/logs \
-v /usr/local/develop/docker-app/rocketmq/store:/home/rocketmq/store \
-v /usr/local/develop/docker-app/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf \
rocketmq:4.4.0 \
sh mqbroker -n namesrv:9876
#9.创建RocketMQ-console可视化工具
docker run -d \
--name rmqconsole \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.231.130:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8080:8080 \
pangliang/rocketmq-console-ng
#10. 查看启动状态
docker ps -a
#11.浏览器预览

(2)docker-compose方式

#1.安装docker-compose
yum install docker-compose
#2.新建配置文件docker-compose.yml
cd /usr/local/develop/docker-app/rocketmq
vim docker-compose.yml
#3.加入下面的配置
```yml
version: '3'
services:
  namesrv:
  	#通过docker images查看镜像名称
    image: rocketmqinc/rocketmq
    #容器起名
    container_name: rocketmq-namesrv
    #指定端口
    ports:
      - 9876:9876
    #指定挂载路径
    volumes:
      - /home/test/develop/docker-app/rocketmq/logs:/home/rocketmq/logs
      - /home/test/develop/docker-app/rocketmq/store:/home/rocketmq/store
    #执行命令
    command: sh mqnamesrv
  broker:
    image: rocketmqinc/rocketmq
    container_name: rocketmq-broker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - /home/test/develop/docker-app/rocketmq/logs:/home/rocketmq/logs
      - /home/test/develop/docker-app/rocketmq/store:/home/rocketmq/store
      - /home/test/develop/docker-app/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c /opt/rocketmq-4.4.0/conf/broker.conf
    depends_on:
      - namesrv
    #下面的JAVA_HOME为容器内的路径
    environment:
      - JAVA_HOME=/usr/lib/jvm/jre
  console:
    image: styletang/rocketmq-console-ng
    container_name: rocketmq-console
    ports:
      - 8080:8080
    depends_on:
      - namesrv
    environment:
      - JAVA_OPTS= -Dlogging.level.root=info   -Drocketmq.namesrv.addr=rocketmq-namesrv:9876 
      - Dcom.rocketmq.sendMessageWithVIPChannel=false
```
#4.在配置文件所在目录执行启动命令
docker-compose up -d   #-d后台运行,可不加

在这里插入图片描述

6.Kafka和Zookeeper

#1.首先安装zookeeper
docker pull wurstmeister/zookeeper
#2.安装kafka
docker pull wurstmeister/kafka 
#3.先简单启动zookeeper
docker run -d --name zookeeper -p 2181:2181 -e TZ="Asia/Shanghai" wurstmeister/zookeeper
#4.复制容器内文件到宿主机
docker cp zookeeper:/opt/zookeeper-3.4.13/conf /home/test/develop/docker-app/zookeeper
docker cp zookeeper:/opt/zookeeper-3.4.13/data /home/test/develop/docker-app/zookeeper
#5.删除zookeeper
docker stop zookeeper
docker rm zookeeper
#6.创建最终的zookeeper
docker run -d --name zookeeper -p 2181:2181 \
-v /home/test/develop/docker-app/zookeeper/conf:/opt/zookeeper-3.4.13/conf \
-v /home/test/develop/docker-app/zookeeper/data:/opt/zookeeper-3.4.13/data \
-v /etc/localtime:/etc/localtime \
-e TZ="Asia/Shanghai" \
wurstmeister/zookeeper
#7.先简单启动kafka
docker run -d --name kafka -p 9092:9092 \
--link zookeeper:zookeeper \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.186.128:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
wurstmeister/kafka
#8.复制容器内文件到宿主机
docker cp kafka:/opt/kafka_2.13-2.8.1/config /home/test/develop/docker-app/kafka
#9.删除kafka
docker stop kafka
docker rm kafka
#10.创建最终的kafka
docker run -d --name kafka -p 9092:9092 \
--link zookeeper:zookeeper \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.186.128:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime \
-v /home/test/develop/docker-app/kafka/config:/opt/kafka_2.13-2.8.1/config \
-v /home/test/develop/docker-app/kafka/logs:/kafka \
wurstmeister/kafka
说明:
--link zookeeper:zookeeper: 连接到名为“zookeeper”的另一个Docker容器,并且在当前的容器中可以通过zookeeper这个别名来访问它。
-e KAFKA_BROKER_ID=0     在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181: 配置zookeeper管理kafka的路径
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.186.128:9092: 把kafka的地址端口注册给zookeeper,这里ip需要更改
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
注意:
如果更改config中server.properties的配置,更改的配置是不会生效的,会被-e配置覆盖掉
#11.进入kafka容器
docker exec -it kafka /bin/bash
#12.进入kafka的bin目录下
cd  /opt/kafka/bin
#13.创建一个新主题(test-kafka)来存储事件
./kafka-topics.sh --create --topic test-kafka --bootstrap-server localhost:9092
#14.测试消费消息:
./kafka-console-consumer.sh --topic test-kafka --from-beginning --bootstrap-server localhost:9092
#15.测试生产消息:
./kafka-console-producer.sh --topic test-kafka --bootstrap-server localhost:9092

7.ElasticSearch

#1.安装
docker pull elasticsearch:8.2.0
#2.启动
docker run -it elasticsearch:8.2.0 /bin/bash
#先简单启动 看一下我们要挂载一些什么样的目录,这个不是我们最终的启动命令。通过ls和pwd命令我们大概知道了es的关键目录大概是以下三个。
#存放配置相关的:/usr/share/elasticsearch/config
#存放数据相关的:/usr/share/elasticsearch/data
#存放插件相关的:/usr/share/elasticsearch/plugins
#3.退出容器
exit 或者 ctrl+c
#4.最终构建容器命令
docker run \
--name elasticsearch \
--privileged=true \
-p 9200:9200 \
-p 9300:9300 \
-v /usr/local/develop/docker-app/elasticsearch/config:/usr/share/elasticsearch/config \
-v /usr/local/develop/docker-app/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/develop/docker-app/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-d elasticsearch:8.2.0
--------------------------------------------------------------------------------------------------------------
#启动之后如果发现没成功启动容器,通过docker logs es看到以下错误,那么就是咋们自己创建的挂载目录可能权限不够高。
Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options
#给三个挂载目录进行chmod 777
chmod 777 /usr/local/develop/docker-app/elasticsearch/config
chmod 777 /usr/local/develop/docker-app/elasticsearch/data
chmod 777 /usr/local/develop/docker-app/elasticsearch/plugins
#直接先启动一个简单的es容器
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.2.0
#将容器里的config文件夹的东西拷贝到宿主机上
docker cp es:/usr/share/elasticsearch/config /usr/local/develop/docker-app/elasticsearch
#删除临时容器
docker stop es
docker rm -f es
#修改elasticsearch.yml文件,将true都改为false
vim /usr/local/develop/docker-app/elasticsearch/config/elasticsearch.yml
#重新启动elasticsearch
docker start elasticsearch

--------------------------------------------------------------------------------------------------------------
#添加新用户
#1.先进入容器
docker exec -it elasticsearch /bin/bash
#2.添加test用户
./bin/elasticsearch-users useradd test 
#3.赋角色权限: 这一步要执行,不然无法访问
./bin/elasticsearch-users roles -a superuser test (超级管理员角色)
./bin/elasticsearch-users roles -a kibana_system test (kibana的用户角色)

#给自己创建的用户修改密码
./bin/elasticsearch-users passwd test

#生成超级管理员elastic的密码,随机的密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
#如果忘记密码,重置elastic的密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
--------------------------------------------------------------------------------------------------------------
#给elasticsearch设置用户名和密码,elastic默认为超级管理员
#1.编辑挂载的配置文件
cd /usr/local/develop/docker-app/elasticsearch/config
vim elasticsearch.yml
#添加如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
#2.先启动es
docker start elasticsearch
#3.进入es
docker exec -it elasticsearch /bin/bash
#4.执行下面命令,会提示你如果确定开启密码的话,需要设置以下六种账户的密码,按y回车,然后密码都设置成elastic,账号也为elastic
./bin/elasticsearch-setup-passwords interactive
#5.完成以上的设置后,需要再次重启ES容器,重启后,输入ES的访问地址:http://192.168.231.130:9200发现已经提示让你输入账号密码了

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#elasticsearch.yml最终的样子如下:
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#开启跨域
http.cors.enabled: true
#所有人访问
http.cors.allow-origin: "*"
xpack.security.enabled: true
xpack.security.enrollment.enabled: true 
xpack.security.http.ssl:
  enabled: false 
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12

在这里插入图片描述

8.Kibana

#1.拉取镜像
docker pull kibana:8.2.0
#2.创建容器挂载的目录,并进入目录
mkdir /usr/local/develop/docker-app/kibana/config
cd config
#3.创建配置文件
vi kibana.yml
添加如下配置:
#设置Kibana映射端口
server.port: 5601
#设置网关地址
server.host: "0.0.0.0"
#设置Kibana实例对外展示的名称
server.name: "kibana"
#设置ES集群地址
#如果elasticsearch加入了自定义的网络network(es_kibana),就用network里的地址
#可以通过命令(docker inspect 容器id)查看,Networks->IPAddress地址就是
elasticsearch.hosts: ["http://192.168.231.130:9200"]
#设置请求超时时长
elasticsearch.requestTimeout: 120000
#设置页面语言
i18n.locale: "zh-CN"
#设置es的普通用户的用户名密码,普通用户的创建步骤在第7条ElasticSearch中有介绍
elasticsearch.username: "test"
elasticsearch.password: "test"

xpack.monitoring.ui.container.elasticsearch.enabled: true
----------------------------------------------------------------------------------------------------
#4.创建容器
docker run -d --network es_kibana --privileged=true \
--name kibana -p 5601:5601 \
-v /usr/local/develop/docker-app/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-e "I18N_LOCALE=zh-CN" \
kibana:8.2.0
#5.访问测试http://ip:5601

#生成超级管理员elastic的密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
#如果忘记密码,重置elastic的密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
#生成enrollment-token(目前只发现kibana登录需要使用)
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

在这里插入图片描述

9.Nacos

在docker中安装nacos,很详细_docker安装nacos-CSDN博客

#1.搜索可以使用的镜像
docker search nacos
#2.拉取镜像
docker pull nacos/nacos-server
#3.创建挂载目录
mkdir -p /usr/local/develop/docker-app/nacos/logs   #新建logs目录
mkdir -p /usr/local/develop/docker-app/nacos/data  
mkdir -p /usr/local/develop/docker-app/nacos/conf
#4.先简单启动nacos容器
docker run --name nacos -d -p 8848:8848 -e MODE=standalone  nacos/nacos-server
#5.复制容器的相关文件到挂载目录
docker cp nacos:/home/nacos/conf/ /usr/local/develop/docker-app/conf
docker cp nacos:/home/nacos/data/ /usr/local/develop/docker-app/data
docker cp nacos:/home/nacos/logs/ /usr/local/develop/docker-app/logs
#6.建库建表
创建数据库nacos_config,执行conf目录下的mysql-schema.sql文件
#7.修改conf下的配置文件application.properties,先备份在修改
```properties
# spring
server.servlet.contextPath=/nacos
server.contextPath=/nacos
server.port=8848
# server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=false
# default current work dir
# server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
spring.datasource.platform=mysql
spring.sql.init.platform=mysql
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false

#  这里必须为公网或服务器内网地址,我这里是服务器的内网地址,容器内部没有mysql,绝对不能使用 127.0.0.1和localhost
#  如果nacos启动失败,Nacos Server did not start because dumpservice bean construction failure : No DataSource set
#  加上 &serverTimezone=UTC ,再不行就加上 &allowPublicKeyRetrieval=true
#  将connectTimeout 和 socketTimeout 分别加个0,避免出现超时异常
db.num=1
db.url.0=jdbc:mysql://192.168.186.128:3306/huishi-config?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

### The auth system to use, currently only 'nacos' and 'ldap' is supported:
# 鉴权类型,默认为nacos
nacos.core.auth.system.type=nacos

# 是否开启鉴权功能,默认为false
nacos.core.auth.enabled=false

# Base64加密前密码  TcmxJw05k$-_zcx.)8EtFC^D^F1W!IPr
# Base64加密后密码  VGNteEp3MDVrJC1femN4Lik4RXRGQ15EXkYxVyFJUHI=
# 加密网站:https://www.qqxiuzi.cn/bianma/base64.htm
# 自定义密钥,在自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。同nacos.core.auth.plugin.nacos.token.secret.key
nacos.core.auth.default.token.secret.key=VGNteEp3MDVrJC1femN4Lik4RXRGQ15EXkYxVyFJUHI=

### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
# 用户登陆临时accessToken的过期时间,默认18000
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
### The default token:

# 默认鉴权插件用于生成用户登陆临时accessToken所使用的密钥,在2.2.1后无默认值,必须执行此变更,否则无法启动;其他版本为建议设置。
nacos.core.auth.plugin.nacos.token.secret.key=VGNteEp3MDVrJC1femN4Lik4RXRGQ15EXkYxVyFJUHI=
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=false

# 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false

# 用于替换useragent白名单的身份识别key,不可为空,2.2.1后无默认值,必须执行此变更,否则无法启动
nacos.core.auth.server.identity.key=nacosKey
# 用于替换useragent白名单的身份识别value,不可为空,2.2.1后无默认值,必须执行此变更,否则无法启动
nacos.core.auth.server.identity.value=nacosValue

## spring security config
### turn off security
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
```
#8.删除先前创建的nacos容器
docker stop nacos
docker rm nacos
#9.运行nacos,创建最终的nacos容器
docker run \
--name nacos -d \
-p 8848:8848 \
-p 7848:7848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /usr/local/develop/docker-app/nacos/conf:/home/nacos/conf \
-v /usr/local/develop/docker-app/nacos/logs:/home/nacos/logs \
-v /usr/local/develop/docker-app/nacos/data:/home/nacos/data \
nacos/nacos-server
#10.检查是否启动
docker ps
#11.访问地址 默认账号密码是nacos/nacos
http://ip:8848/nacos

在这里插入图片描述

注意:服务注册时报错 Client not connected, current status:STARTING
该错误明确地指向了客户端与服务器之间的连接障碍。为了确保流畅的连接,两者之间的通信参数和网络环境都需要满足特定的条件
在网上查了一堆解决方案,网络、服务器状态、防火墙、日志分析,都没有发现问题
之后发现Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加3个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。在这里插入图片描述

10.Canal

# 安装和配置Canal
下面我们就开启mysql的主从同步机制,让Canal来模拟salve
# 1.开启MySQL主从
Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。
这里以之前用Docker运行的mysql为例:
## 1.1.开启binlog
打开mysql容器挂载的日志文件,我的在`/usr/local/develop/docker-app/mysql/conf`目录:
修改文件:
vi /usr/local/develop/docker-app/mysql/conf/my.cnf
添加内容:
log-bin=/var/lib/mysql/mysql-bin
binlog-do-db=redis_mult_cache
配置解读:
- `log-bin=/var/lib/mysql/mysql-bin`:设置binary log文件的存放地址和文件名,叫做mysql-bin,名字随便取
- `binlog-do-db=redis_mult_cache`:指定对哪个database记录binary log events,这里记录redis_mult_cache这个库

最终效果:
[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
log-bin=/var/lib/mysql/mysql-bin
binlog-do-db=redis_mult_cache
## 1.2.设置用户权限
接下来添加一个仅用于数据同步的账户,出于安全考虑,这里仅提供对redis_mult_cache这个库的操作权限。
在mysql控制台,或者Navicat中新建查询:
create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%' identified by 'canal';
FLUSH PRIVILEGES;
重启mysql容器即可
docker restart mysql
测试设置是否成功:在mysql控制台,或者Navicat中,输入命令:
show master status;

# 2.安装Canal
## 2.1.创建网络
我们需要创建一个网络,将MySQL、Canal、MQ放到同一个Docker网络中:
docker network create mysql_canal
让mysql加入这个网络:
docker network connect mysql_canal mysql
## 2.3.安装Canal
将canal的镜像压缩包上传到虚拟机,然后通过命令导入:
docker load -i canal.tar
然后运行命令创建Canal容器:
docker run -p 11111:11111 --name canal \
-e canal.destinations=test \
-e canal.instance.master.address=mysql:3306  \
-e canal.instance.dbUsername=canal  \
-e canal.instance.dbPassword=canal  \
-e canal.instance.connectionCharset=UTF-8 \
-e canal.instance.tsdb.enable=true \
-e canal.instance.gtidon=false  \
-e canal.instance.filter.regex=redis_mult_cache\\..* \
--network mysql_canal \
-d canal:latest
说明:
- `-p 11111:11111`:这是canal的默认监听端口
- `-e canal.destinations=test`:这是给canal集群起个名字
- `-e canal.instance.master.address=mysql:3306`:数据库地址和端口,如果不知道mysql容器地址,可以通过`docker inspect 容器id`来查看
- `-e canal.instance.dbUsername=canal`:数据库用户名
- `-e canal.instance.dbPassword=canal` :数据库密码
- `-e canal.instance.filter.regex=redis_mult_cache\\..*`:要监听redis_mult_cache库下所有的表

表名称监听支持的语法:
mysql 数据解析关注的表,Perl正则表达式.
多个正则之间以逗号(,)分隔,转义符需要双斜杠(\\) 
常见例子:
1.  所有表:.*   or  .*\\..*
2.  canal schema下所有表: canal\\..*
3.  canal下的以canal打头的表:canal\\.canal.*
4.  canal schema下的一张表:canal.test1
5.  多个规则组合使用然后以逗号隔开:canal\\..*,mysql.test1,mysql.test2 

在这里插入图片描述

11.MQTT

#1.新建目录
mkdir -p /usr/local/develop/docker-app/mqtt/config
mkdir -p /usr/local/develop/docker-app/mqtt/data
mkdir -p /usr/local/develop/docker-app/mqtt/log
#2.创建配置文件
#存放基本配置
touch /usr/local/develop/docker-app/mqtt/config/mosquitto.conf
#存放用户密码配置文件
touch /usr/local/develop/docker-app/mqtt/config/pwfile.conf
#日志目录
touch /usr/local/develop/docker-app/mqtt/log/mosquitto.log
#3.修改配置文件
vi /usr/local/develop/docker-app/mqtt/config/mosquitto.conf
#添加下面的内容,下面的所有路径,指向的都是docker的路径,不需要修改!!!:
```conf
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
listener 1883
#协议模式,可以不指定
#protocol websockets
# 关闭匿名模式
allow_anonymous false
#指定密码文件
password_file /mosquitto/config/pwfile.conf
```
#4.修改文件权限
chmod -R 755 /usr/local/develop/docker-app/mqtt
chmod -R 777 /usr/local/develop/docker-app/mqtt/log #日志目录要最大权限
#5.启动命令
docker run -it --name=mqtt --privileged  -p 1883:1883 -p 9001:9001 \
-v /usr/local/develop/docker-app/mqtt/config/mosquitto.conf:/mosquitto/config/mosquitto.conf  \
-v /usr/local/develop/docker-app/mqtt/data:/mosquitto/data \
-v /usr/local/develop/docker-app/mqtt/log:/mosquitto/log \
-v /usr/local/develop/docker-app/mqtt/config/pwfile.conf:/mosquitto/config/pwfile.conf -d  \
eclipse-mosquitto 
#命令详解:
1883是应用的端口,9001是管理程序的端口。要将宿主机和容器之间的文件关系进行映射,
冒号前面的是宿主机配置,冒号后面是容器配置
比如:-p 1883:1883  前面是宿主机端口 ,后面是容器端口,因此需要在宿主机的防火墙中放开1883这个端口。其他配置都是类似,需要了解。

#好多网上的启动命令没有这一句话:-v /docker/mosquitto/config/pwfile.conf:/mosquitto/config/pwfile.conf
#就会报找不到文件的错误:Error: Unable to open log file /mosquitto/log/mosquitto.log for writing.
#一定记得把宿主机的文件目录和容器的目录映射起来,这样在启动的时候,就不会报错。

#6.账号密码修改,进入容器
docker exec -it mqtt sh
mosquitto_passwd -b /mosquitto/config/pwfile.conf test test  #设置账号密码
exit退出容器
#7.重启容器
docker restart mqtt
#8.客户端访问

在这里插入图片描述

未完待续~~~~

如果这份博客对大家有帮助,希望各位给南山寺夜雨一个免费的点赞

标签:develop,--,安装,usr,conf,Linux,docker,local,常用软件
From: https://www.cnblogs.com/yuetong-develop/p/18317764

相关文章

  • Linux随堂笔记
    以点开头的文件是隐藏文件,ls-a查看~家目录-rw-------,1rootroot907Jul1816:58anaconda-ks.cfg"-rw-------"表示文件权限,其中"-"表示普通文件,"rw-"表示所有者有读写权限,"---"表示组和其他用户没有任何权限。"1"表示文件的硬连接数。"rootroot"分别表示所有者和所属......
  • 2024-IDEA下载安装教程
    IDEA下载安装教程IDEA官网:IntelliJIDEA–theLeadingJavaandKotlinIDE(jetbrains.com)下载IDEA   双击运行ideaIU-2024.1.4.exe 安装     激活idea 链接:https://pan.baidu.com/s/1_lMVe0oODa-b4BrQJrpZTw?pwd=3456提取码:3456  ......
  • 无法安装 lbzip2
    在安装python-for-android的先决条件时,我尝试安装lbzip2,但无法安装。我使用的命令:$sudoapt-getinstall-ylbzip2但是,我得到以下输出和错误:[sudo]passwordforuser00:Readingpackagelists...DoneBuildingdependencytree...DoneReadingstateinfo......
  • windows安装scoop教程
    Scoop简介Scoop是Windows的命令行安装程序,是一个强大的包管理工具。可以在github上找到其项目的相关信息,项目网址。安装的起因:在平常生活中如果要安装像gcc、git等一些需要手动配置相关参数的工具,需要先去官网下载安装程序,点击安装,之后还需要配置,不仅过程麻烦,而且工具多了之后整......
  • Linux 运维必备的13款实用工具
    1、查看进程占用带宽情况-NethogsNethogs是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽。下载:http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download[root@localhost~]#yum-yinstalllibpcap-develncurses-devel[ro......
  • linux没熟练内容
    一:压缩与解压(1)xzfilename压缩文件unxzfilename解压文件xzfilename1filename2同时压缩两个文件(2)压缩目录tar-zcvf压缩文件名.tar.gz原名必须要有.tar.gz例如:tar-zxvftaiguowanmei.tar.gzdirectory(删除压缩包也用rm)解压tar-zxvf压缩文件名.tar.gz......
  • 阿里云系统安装docker
    dockers安装sudoyuminstall-yyum-utils---使用阿里云镜像yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyuminstalldocker-cedocker-ce-clicontainerd.iosystemctlstartdocker---设置docker镜像地址sudomk......
  • 基于Ubuntu系统升级或安装Nginx
    1.备份/etc/nginxsudocp-r/etc/nginx~/nginx_backup2.停止并卸载sudonginx-sstopsudoaptremovenginxnginx-commonnginx-fullnginx-core3.更新apt源要注意codename,ubantu版本不同codename不同#进入目录$cd/etc/apt#备份源文件$sudocpsources.list......
  • pnpm的安装与使用
    官网:安装|pnpm中文文档|pnpm中文网一、pnpm优势:1.节省磁盘空间假设你有一个依赖包example-package,包含100个文件。如果你使用npm安装在100个项目中,你的硬盘上会有100份example-package,每份都占用同样的空间。然而,如果是使用pnpm,(1)example-package的所有文......
  • Linux 行文本处理工具sed
    sed(streameditor)是Linux和Unix系统中非常强大的文本处理工具,它可以对文本进行过滤和转换。sed以行为单位处理文本,可以通过读取输入文件(或标准输入),应用一系列的编辑命令,然后将结果输出到标准输出(通常是屏幕)或文件中。基本语法sed[选项]...{脚本-地址}{命令}[输入文件]......