docker run -id --name=redis -p 6381:6379 redis:7.0
docker run -id --name=mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
docker run -id --name nginx -p 83:80 nginx:1.20
华为centos镜像下载地址
https://mirrors.huaweicloud.com/centos/
https://mirrors.huaweicloud.com/centos/7.9.2009/isos/x86_64/
网易centos镜像下载地址
http://mirrors.163.com/centos/7.9.2009/isos/x86_64/
查看linux版本命令
1、cat /etc/redhat-release :CentOS Linux release 7.9.2009 (Core)
2、cat /etc/centos-release :CentOS Linux release 7.9.2009 (Core)
查看linux内核命令
uname -r : 3.10.0-1160.62.1.el7.x86_64
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none" #开启静态IP,也可用 static
IPADDR="192.168.136.161"
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.136.2" # 网关地址
DNS1="114.114.114.114" # DNS服务器
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="63d66e06-e7d7-45ff-ab0b-8e6dcaf912b9"
DEVICE="ens33"
ONBOOT="yes"
PREFIX="24"
IPV6_PRIVACY="NO"
1、yum -y install net-tools --安装网络插件(ifconfig)
2、yum -y install vim --安装vim插件
3、yum -y install lrzsz --安装传输插件
4、yum -y install git --安装git
5、yum -y install tree --安装属性展示插件
6、yum -y install wget --安装下载插件
7、yum -y install unzip zip --安装zip压缩插件
zip -r myfile.zip ./* :将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩
unzip -o -d /home/sunny myfile.zip : 把myfile.zip文件解压到 /home/sunny/目录下
-o:不提示的情况下覆盖文件;
-d:指明将文件解压缩到/home/sunny目录下
zip -d myfile.zip smart.txt:删除压缩文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt :向压缩文件中myfile.zip中添加rpm_info.txt文件
8、yum -y update --更新yum源
9、yum -y install lsof --安装lsof插件(查看端口占用)
方式一:
1、 CentOS7利用yum进行软件安装,报错:
There are no enabled repos. Run "yum repolist all" to see the repos you have
2、下载对应版本repo文件,如:CentOS7-Base-163.repo, 放入/etc/yum.repos.d/里
3、下载地址:http://mirrors.163.com/.help/centos.html
4、完成后,查看/etc/yum.repos.d文件夹下是否有了CentOS-Base.repo文件。
5、执行命令,生成缓存:
yum clean all
yum makecache
方式二:
1、先备份本地默认的yum源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
2、获取新的yum源,一般使用阿里或者网易的
1)、阿里
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2)、网易
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
3、执行命令,生成缓存:
yum clean all
yum makecache
关于防火墙: 要想在windows上能够访问,还需要开放防火墙的对应的端口,如mysql的3306端口
1)、查看防火墙状态
1、service firewalld status
2、systemctl status firewalld
3、firewall-cmd --state
2)、开放单个端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
3)、关闭单个端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
firewall-cmd --reload
4)、查看开放端口:
firewall-cmd --zone=public --list-ports
5)、完全关闭防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁用防火墙(禁止随系统自动启动)
6)、开启防火墙
systemctl start firewalld #开启防火墙
systemctl enable firewalld #启用防火墙(随系统自动启动)
1、文件和目录命令
1)、退回上一级目录 cd .. |进入根目录 cd / |进入当前用户主目录cd ~
1、查看端口占用
linux: netstat -tunlp | grep 端口号
lsof -i:端口号 (需要root权限执行)【安装lsof:yum -y install lsof.*】
windows: netstat -ano | findstr 端口号
2、杀进程
linux: kill -9 进程ID
windows: tastkill /PID 进程ID /F
3、服务管理
service 【服务名称】 【start|restart|stop|status】
例子: service docker start
systemctl 【command】 【unit】 (command为命令,unit为服务名)
例子: systemctl enable docker
command命令还有如下:
start:立刻启动后面接的 unit。
stop:立刻关闭后面接的 unit。
restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable:设置下次开机时,后面接的 unit 会被启动。
disable:设置下次开机时,后面接的 unit 不会被启动。
status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
is-active:目前有没有正在运行中。
is-enable:开机时有没有默认要启用这个 unit。
kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
show:列出 unit 的配置。
mask:注销 unit,注销后你就无法启动这个 unit 了。
unmask:取消对 unit 的注销。
4、wget :
wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果
是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联
到服务器上从停止的地方继续下载。
5、sed:
替换文本中的关键字
sed -i -e ‘s#需要被替换的关键字#目标关键字#g’ 文件名
6、查看进程
查看java进程:ps -ef|grep java
查看java进程名占用进程的进程id:pgrep java
查看指定进程id的运行目录:pwdx 54096
1、进入vim:vim 文件名
2、进入编辑模式: 按 【i】
3、退出编辑模式: 按 【ESC】
4、保存退出vim: 输入 【:wq】
5、强制退出vim: 输入 【q!】
6、定位到第一行: 按 【gg 或 1G】
7、定位到最后一行: 按 【G】
8、定位到指定行: 输入 【指定行号G】
9、定位到行首: 按【0】
10、定位到行尾 按 【shift + 4】
11、撤销:按【u】
JDK下载地址:https://www.oracle.com/java/technologies/downloads/
1、自己新建一个目录,用于存放和安装JDK:mkdir -p /root/install/jdk
2、使用linux自带sftp工具(alt+p)
从本机上传至linux命令 : put 文件夹路径
从linux上获取文件命令 : get 文件夹路径
或者使用lrzsz工具(yum -y install lrzsz)
从本机上传至linux命令 : rz (图形化界面,将文件上传至当前目录)
从linux上获取文件命令 : sz 文件夹路径
将JDK1.8的安装包上传至自己新建的目录
3、解压缩包: tar -zxvf jdk-8u171-linux-x64.tar.gz
4、编辑系统profile文件
vim /etc/profile
添加如下配置:
#set java environment
JAVA_HOME=/root/install/jdk/jdk1.8.0_171
JRE_HOME=/root/install/jdk/jdk1.8.0_171/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
5、刷新配置文件
source /etc/profile
6、验证
java -version
1、将Tomcat的安装包上传至linux:/root/install/tomcat
2、进入tomcat目录进行解压:tar -zxvf apache-tomcat-7.0.57.tar.gz
3、启动tomcat:
cd /root/install/tomcat/apache-tomcat-7.0.57/bin
sh startup.sh或者./startup.sh
4、查看是否启动
1)、通过查看日志的形式:
tail -500f /root/install/tomcat/apache-tomcat-7.0.57/logs/catalina.out
2)、通过查看进程的方式:ps -ef|grep tomcat
5、可在tomcat的webapp中放入项目,如新建test文件夹,在其中放入index.html文件
6、访问:http://192.168.200.161:8080/mytest/index.html
#1、搜索tomcat镜像
docker search tomcat
#2、拉取tomcat镜像
docker pull tomcat:9.0
#3、在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
#4、进入tomcat目录 创建容器,设置端口映射、目录映射、自动启动
docker run -id \
-p 8081:8080 \
--name=tomcat9 \
--restart=always \
-v $PWD:/usr/local/tomcat/webapps \
tomcat:9.0
#5、在tomcat目录下创建mytest目录,并新建index.html,写入文字
#6、访问 http://192.168.200.161:8081/mytest/index.html 进行测试
Mysql下载地址:https://downloads.mysql.com/archives/community/
https://dev.mysql.com/downloads/installer/
https://downloads.mysql.com/archives/installer/
1、卸载。下载完成之后,先不要急着安装。由于某些原因,在安装 MySQL 之前,可能电脑中已经有了安装过 MySQL 的痕迹,这可能会给下面 MySQL 的安装带来各种问题(如密码不能初始化、MySQL 执行失败等),因此首先需要先彻底清除电脑中与 MySQL 有关的任何文件。
rpm -qa 查询当前系统中安装的所有软件
rpm -qa | grep mariadb 查询当前系统中安装的名称带mariadb的软件
通过查询,发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的, 所以要想保证MySQL成功安装,需要卸载mariadb数据库。
rpm中,卸载软件的语法为:rpm -e --nodeps 软件名称
卸载mariadb:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
稳妥起见,用命令再次检测
1)、检查电脑里是否已经安装了 MySQL。输入以下命令来查看电脑中与 MySQL 有关的安装信息。
sudo yum list installed mysql*
2)、如果命令的输出什么也没有,那就无需卸载。如果有,则要输入以下命令来卸载:
sudo yum erase mysql*
3)、卸载通常不是万能的,还需要手动删除与 MySQL 有关的文件。输入以下命令来查找这种文件
sudo find / -name 'mysql*'
4)、输入以下命令来删除目录 /var/、/usr/、/etc/ 下的这些文件
sudo find /var /usr /etc -name "mysql*" -exec rm -r {} \;
5)、删除完成之后,再使用上面的查找命令,看看还能不能找到这些文件。
2、上传:将下载好的mysql rpm包上传至linux目录:/root/install/mysql
3、解压:tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz
4、安装:核心的安装包是 mysql-community-server。在普通情况下,使用命令 sudo yum localinstall mysql-community-server-8.0.26-1.el8.x86_64.rpm 即可。但在此处却不能这样做,因为 MySQL 的各个组成安装包之间有复杂的依赖关系,而 mysql-community-server 并不是依赖的起点,所以需要按依赖关系依次安装
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
但是,注意: 以下命令可以自动解析本目录下各安装包的依赖关系,并自动按顺序安装:
sudo yum -y localinstall *.rpm
5、验证
mysql --version
6、运行状态控制:MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql
systemctl status mysqld 查看mysql服务状态
systemctl start mysqld 启动mysql服务
systemctl stop mysqld 停止mysql服务
systemctl enable mysqld 开机自启
当然,还可以通过如下两种方式,来判定mysql是否启动:
netstat -tunlp 查看已经启动的服务
netstat -tunlp | grep mysql 查看mysql的服务信息
ps –ef | grep mysql 查看mysql进程
7、查看临时密码:rpm安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log,注意,该密码如果忘记,只能重新安装mysql
cat /var/log/mysqld.log | grep password
8、登录
mysql -uroot -p'ZBrVGHWNk0(A'
9、修改密码
查看密码强度设定:SHOW VARIABLES LIKE 'validate_password%';
修改密码强度:
set global validate_password_length=4; #密码长度最低位数,默认是8
set global validate_password_policy=LOW; #密码安全等级低,默认是MEDIUM,便于密码可以修改成root
set password = password('root'); #设置localhost user密码为root
也可用如下命令修改:
#设置指定user的密码为root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'
#刷新权限
flush privileges;
10、开启远程访问权限
#也可用来修改指定用户密码
grant all on *.* to 'root'@'%' identified by 'root'; #注意:远程只能通过% Host访问
#或
update user set user.Host='%' where user.User='root';
#然后刷新权限
flush privileges;
11、连接验证
1)、 通过windwos cmd连接:
mysql -h 192.168.200.161 -P 3306 -uroot -proot
2)、通过客户端连接工具连接
通过某些客户端连接时,可能会报如下错:plugin caching sha2 password could not be loaded
原因是:客户端采用的密码认证方式落后了,现在8.0的mysql采用的sha2加密方式并没有更新到R包中,
因此需要更改mysql的指定用户的加密方式,拿wifi举例,等于现在用户设备不支持wap2加密,只能
用上一代的wap加密方式。
解决:修改mysql的加密方式
#修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#更新用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
#刷新权限
FLUSH PRIVILEGES;
#重置密码
#ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
12、设置开机自启
systemctl enable mysqld
13、修改msyql root密码
方法1: 用SET PASSWORD命令
首先登录MySQL,用如下命令查看数据库root用户密码情况:
SELECT `HOST`,`User`,`authentication_string` FROM mysql.user WHERE `User` = 'root'
#1、设置 localhost Host密码为root123 (localhost Host控制本机器连接)
#2、设置 % Host密码为root123 (% Host控制远程连接)
格式:mysql> set password for 用户名@Host = password('新密码');
例子:mysql> set password for root@localhost = password('root123');
mysql> set password for root@'%' = password('root123');
flush privileges;
方法2:用mysqladmin 修改Host为localhost的用户密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -proot password root123 #设置localhost Host密码为root123
flush privileges;
14、如果忘记mysql root密码
1)、停掉mysql服务 service mysqld stop
2)、修改/etc/my.cnf 文件,在mysqld下面 增加 skip-grant-tables ,作用是登陆是跳开密码校验
3)、启动mysql服务 service mysqld start
4)、登陆 mysql -u root
5)、修改密码(将密码修改为 root123 ) 依次执行以下操作
use mysql
#一并修改Host为%和Host为localhost的两个root用户密码为root123
update mysql.user set authentication_string=password('root123') where user='root'
flush privileges;
6)、/etc/my.cnf 文件删掉 skip-grant-tables
6)、重启mysql服务
service mysqld restart
#1、搜索mysql镜像
docker search mysql
#2、拉取mysql镜像
docker pull mysql:8.0
#3、在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/install/docker/mysql
cd ~/install/docker/mysql
#4、进入mysql目录 创建容器,设置端口映射、目录映射、自动启动
docker run -id \
-p 3307:3306 \
--name=mysql8 \
--restart=always \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
#5、进入容器,操作mysql
docker exec –it mysql /bin/bash
#6、可使用mysql客户端连接mysql进行测试
Maven下载地址:http://maven.apache.org/download.cgi
1、下载并上传至linux目录:/root/install/maven
2、解压:tar -zxvf apache-maven-3.6.1-bin.tar.gz -C /usr/local
3、修改环境变量:编辑系统profile文件
vim /etc/profile
修改添加如下配置:
#set java environment
JAVA_HOME=/root/install/jdk/jdk1.8.0_171
JRE_HOME=/root/install/jdk/jdk1.8.0_171/jre
MAVEN_HOME=/root/install/maven/apache-maven-3.6.1
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin
export JAVA_HOME JRE_HOME MAVEN_HOME CLASS_PATH PATH
让配置生效: source /etc/profile
4、配置本地仓库地址
1)、进入setting文件目录
cd /root/install/maven/apache-maven-3.6.1/conf
2)、编辑settings.xml配置文件
vim settings.xml
3)、在其中增加如下配置,配置本地仓库地址
<localRepository>/root/install/maven/repository</localRepository>
4)、在settings.xml中的<mirrors>标签中,配置阿里云的私服
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
1、介绍
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。
2、官网:官网:https://nginx.org/
3、官方下载:http://nginx.org/en/download.html
1、由于nginx是基于c语言开发的,所以需要安装c语言的编译环境,及正则表达式库等第三方依赖库:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2、在线下载Nginx安装包(可选)
yum -y install wget
wget https://nginx.org/download/nginx-1.16.1.tar.gz (wget命令用来从指定的URL下载文件)
3、配置Nginx编译环境
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx
4、编译 & 安装
make & make install
5、安装完Nginx后,切换到Nginx的安装目录(/usr/local/nginx),Nginx的目录结构如下:
1)、conf:配置文件的存放目录
2)、conf/nginx.conf:Nginx的核心配置文件
3)、html:存放静态资源(html, css,等) 部署到Nginx的静态资源都可以放在html目录中
4)、logs:存放nginx日志(访问日志、错误日志等)
5)、sbin/nginx:二进制文件,用于启动、停止Nginx服务,执行命令需切到本目录执行
6、常用nginx命令
1)、查看版本:./nginx -v
2)、检查配置文件:./nginx -t (可用于修改核心配置文件后,检测文件是否有错误)
3)、启动:./nginx
4)、检测:ps -ef|grep nginx(服务启动后,默认就会有两个进程,一个主进程,一个工作进程)
5)、停止:./nginx -s stop
6)、重新加载:./nginx -s reload (修改了Nginx配置文件后,需要重新加载才能生效)
7、配置nginx环境变量
vim /etc/profile :
NGINX_HOME=/usr/local/nginx/sbin
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin:$NGINX_HOME
source /etc/profile
8、访问:直接访问Nginx的80端口, http://192.168.200.161
#1、搜索ngnix镜像
docker search ngnix
#2、拉取ngnix镜像
docker pull ngnix
#3、在/root目录下创建ngnix目录用于存储ngnix数据信息,并配置ngnix配置文件
mkdir ~/install/docker/ngnix
cd ~/install/docker/ngnix
mkdir conf
cd conf
vim nginx.conf
#4、在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
#5、进入ngnix目录 创建容器,设置端口映射、目录映射、自动启动
docker run -id -p 81:80 --name=nginx1.20 --restart=always \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx -v $PWD/html:/usr/share/nginx/html \
nginx:1.20
#6、在html目录下新建index.html,写入文字
#7、访问 http://192.168.200.161 进行测试
1、nginx的配置文件(conf/nginx.conf)整体上分为三部分: 全局块、events块、http块。
1)、全局块:配置和nginx运行相关的全局配置
2)、events块:配置和网络连接相关的配置
3)、http块:配置代理、缓存、日志记录、虚拟主机等配置
http块中可以包含多个server块
每个server块可以配置多个location块。
2、部署静态资源
1)、Nginx可以作为静态web服务器来部署静态资源。这里所说的静态资源是指在服务端真实存在,并且能够直接
展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。
2)、相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到
Nginx中。
3)、静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
server {
listen 80; #监听端口
server_name localhost; #服务器名称
location / { #匹配客户端请求url
root html; #指定静态资源根目录
index index.html; #指定默认首页
}
}
4)、示例一:在 /usr/local/nginx/html中新建文件hello.html,写入代码,访问:
http://192.168.200.161/hello.html
5)、示例二:在配置文件http/server 块中修改如下配置
location / { #匹配客户端请求url
root html; #指定静态资源根目录
index hello.html; #指定默认首页
}
重新加载:nginx -s reload
访问: http://192.168.200.161
3、反向代理
1)、window上用IDEA将项目project_demo打包两次,端口分别为8888、9999
2)、上传至/root/app目录
3)、启动
nohup java -jar hello-project1.jar &>demo1.log &
nohup java -jar hello-project2.jar &>demo2.log &
测试访问:
http://192.168.200.161:8888/hello
http://192.168.200.161:9999/hello
4)、nginx.conf并增加如下配置:
#upstream指令可以定义一组服务器
upstream targetserver{
server 192.168.200.161:8888;
server 192.168.200.161:9999;
}
server {
listen 8000;
server_name localhost;
location / {
proxy_pass http://targetserver;
}
}
server {
listen 82;
server_name localhost;
location / {
proxy_pass http://192.168.200.161:8000;
}
}
测试:http://192.168.200.161:8000/hello
测试:http://192.168.200.161:82/hello
5)、关于负载均衡配置
1、轮询默认方式
每个请求,按时间顺序逐一分配到不同的后端应用服务器节点,如果后端服务出现故障,nginx能够自动
剔除该节点
2、weight:权重方式,根据权重分发请求,权重大的分配到请求的概率大,权重(weight)默认值为1,
权重越高,被分配的请求数量越多
#upstream指令可以定义一组服务器
upstream targetserver{
server 192.168.200.201:8080 weight=2;
server 192.168.200.201:8081 weight=1;
}
3、ip_hash:依据ip分配方式,根据客户端请求的IP地址计算hash值,根据hash值来分发请求,
同一个IP发起的请求, 会发转发到同一个服务器上
upstream targetserver{
ip_hash;
server 192.168.200.201:8080;
server 192.168.200.201:8081;
}
4、url_hash:依据url分配方式,根据客户端请求url的hash值,来分发请求, 同一个url请求, 会发转发到同
一个服务器上
5、least_conn:依据最少连接方式,哪个服务器当前处理的连接少, 请求优先转发到这台服务器
6、fair:依据响应时间方式,优先把请求分发给处理请求时间短的服务器
1、开发项目
2、项目打包 mvn package
3、获取target目录下打好的包,如:demo-1.0-SNAPSHOT.jar
4、上传至linux指定目录:/root/app
5、运行:java -jar demo-1.0-SNAPSHOT.jar
也可以后台运行,并指定输出日志文件名,默认输出到nohup.log
nohup java -jar demo-1.0-SNAPSHOT.jar &>demo.log &
6、访问 http://192.168.136.162:8080/demo
1、安装maven、git
2、从git将代码clone指定位置:/root/app
git clone http://git......
3、将写好的shell脚本上传至linux:/root/app
4、运行shell脚本
sh project_demo_startup.sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=demo
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
ARR=($tpid)
tpid=${ARR[0]}
echo tpid=$tpid
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /root/install/app/project_demo
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar demo.jar &> ../demo.log &
echo 项目启动完成
1、输入以下这句命令,询问全部回车
ssh-keygen -t rsa -C "邮箱"
如果忘了邮箱和用户名,可以在windows用如下命令查看当初设置的邮箱和密码
git config user.name
git config user.email
ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:tXWmY7AFmuHGWg0FMynR4RZB8sHdAimRSBieRaCfYLs [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| o*+.+B&Xo. |
| o.o. +*=@o.. |
|o.o o@ +.o o |
|.o.. = . * + |
| .o . S o + |
| . . . |
| E |
| |
| |
+----[SHA256]-----+
2、 进入公钥文件
cat /root/.ssh/id_rsa.pub
3、复制公钥
4、在git平台->个人头像设置->添加公钥
5、第一次可能还是需要用户名密码,之后不再需要(可能还需要重启机器)
下载地址:https://download.redis.io/releases/ 、https://redis.io/download
1、下载并上传至linux:/root/install/redis
2、解压: tar -zxvf redis-4.0.0.tar.gz
3. 安装Redis的依赖环境gcc,命令:yum install gcc-c++
4. 进入/usr/local/redis-4.0.0,进行编译,命令:make
5. 进入redis的src目录进行安装,命令:make install
6、运行redis server服务:redis-server,但是存在占用终端的情况
7、通过修改配置文件,设置Redis服务后台运行、设置密码、设置允许客户端远程连接Redis服务
- Linux系统中Redis配置文件:REDIS_HOME/redis ./redis-server ./redis.conf
- Windows系统中Redis配置文件:REDIS_HOME/redis.windows ./redis-server ./redis.conf
1)、设置Redis服务后台运行:daemonize = yes
2)、关闭保护模式:protected-mode no
2)、设置Redis服务密码:requirepass 你的密码
3)、设置允许客户端远程连接Redis服务,Redis服务默认只能客户端本地连接,不允许客户端远程连接。如果指定了bind,则说明只允许来自指定网卡的Redis请求。如果没有指定,就说明可以接受来自任意一个网卡的Redis请求。将配置文件中的 bind 127.0.0.1 配置项注释掉,或者绑定上允许访问的ip: bind ip1 ip2 ip3
4)、之后启动server需要指定配置文件:redis-server ../redis.conf
注意:Redis配置文件中的配置项前面不能有空格,需要顶格写
5)、任意目录redis-cli进行客户端连接
下载地址:https://github.com/tporadowski/redis/releases、https://github.com/MicrosoftArchive/redis/tags
1、下载并解压
2、修改配置文件 redis.windows-service.conf
requirepass 你的密码
bind ip1 ip2 ip3
3、设置开机自启
redis-server --service-install redis.windows-service.conf --loglevel verbose
redis-server --service-uninstall
4、配置redis环境变量
5、任意目录redis-cli进行客户端连接
#1、搜索redis镜像
docker search redis
#2、拉取redis镜像
docker pull redis:7.0
#3、创建容器,设置端口映射、目录映射、自动启动
docker run -id --name=redis7.0 --restart=always -p 6380:6379 redis:7.0
#4、使用外部机器连接redis
redis-cli -h 192.168.200.161 -p 6379
官网地址:https://www.elastic.co/cn/elasticsearch/
官网下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
1、上传安装包
alt+p # 打开sftp窗口
# 上传es安装包
put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4zpHCGST-1679069175423)(.\assets\1574607430115.png)]
2、解压
# 将elasticsearch-7.4.0-linux-x86_64.tar.gz解压到opt文件夹下. -C 大写
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt
3、创建普通用户
因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:
groupadd elsearch
useradd itheima -g elsearch # 新增itheima用户,并且设置所属组
passwd itheima # 为itheima用户设置密码
或
groupadd elsearch
useradd itheima -g elsearch -p itheima #一步设置用户组和密码
4、为新用户授权,如下图
chown -R itheima:itheima /opt/elasticsearch-7.4.0 #文件夹所有者
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sE0VTDmN-1679069175424)(.\assets\1574607864042.png)]
将 /opt/elasticsearch-7.4.0文件夹授权给itheima用户,由上图可见,我们的文件夹权限赋给了itheima
5、修改elasticsearch.yml文件
vim /opt/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
6、修改配置文件
新创建的itheima用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件, 添加
类似如下内容
# 切换到root用户
su root
#1. ===最大可创建文件数太小=======
vim /etc/security/limits.conf
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
# =====
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
* hard nproc 4096
# 注:* 代表Linux所有用户名称
#2. ===最大虚拟内存太小=======
vim /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
# 重新加载,输入下面命令:
sysctl -p
7、启动elasticsearch
su itheima # 切换到itheima用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cLu7iqOh-1679069175425)(.\assets\1574609255103.png)]
通过上图我们可以看到elasticsearch已经成功启动
8、访问elasticsearch
在访问elasticsearch前,请确保防火墙是关闭的,执行命令:
#暂时关闭防火墙
systemctl stop firewalld
# 或者
#永久设置防火墙状态
systemctl enable firewalld.service #打开防火墙永久性生效,重启后不会复原
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原
浏览器输入http://192.168.149.135:9200/,如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3uRZh5IU-1679069175425)(.\assets\1574609539550.png)]
此时elasticsearch已成功启动:
重点几个关注下即可:
number" : "7.4.0" 表示elasticsearch版本
lucene_version" : "8.2.0" 表示lucene版本
name : 默认启动的时候指定了 ES 实例名称
cluster_name : 默认名为 elasticsearch
1). 解压缩:elasticsearch-7.14.0-windows-x86_64.zip,放到软件安装目录
2). 编辑 config/elasticsearch.yml
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
3). 启动&访问:
双击:bin/elasticsearch.bat
访问:http://localhost:9200
4). 查看elastic是否启动
ps -ef|grep elastic
1、需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net
2、加载镜像:docker load -i es.tar,也可以自行pull
3、创建容器:
docker run -d --name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \ #监听的地址,可以外网访问
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
--restart=always
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1
4、在浏览器中输入:http://192.168.136.161:9200 即可看到elasticsearch的响应结果:
官网地址:https://www.elastic.co/cn/elasticsearch/
官网下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana 注意:下载es对应版本zip包
1、什么是Kibana
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。
2、上传kibana
put E:\software\kibana-7.4.0-linux-x86_64.tar.gz
3、解压kibana
tar -zxvf kibana-7.4.0-linux-x86_64.tar.gz -C /opt
4、修改kibana配置
vim /opt/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
server.port:http访问端口
server.host:ip地址,0.0.0.0表示可远程访问
server.name:kibana服务名
elasticsearch.hosts:elasticsearch地址
elasticsearch.requestTimeout:请求elasticsearch超时时间,默认为30000,此处可根据情况设置
**5、启动kibana**
由于kibana不建议使用root用户启动,如果用root启动,需要加–allow-root参数
# 切换到kibana的bin目录
cd /opt/kibana-7.4.0-linux-x86_64/bin
# 启动
./kibana --allow-root
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rW3SD85p-1679069175426)(.\assets\1574610511959.png)]
6、访问kibana
浏览器输入http://192.168.149.135:5601/,如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7HGjRwE2-1679069175427)(.\assets\1574610669598.png)]
看到这个界面,说明Kibanan已成功安装。
`Discover`:可视化查询分析器
`Visualize`:统计分析图表
`Dashboard`:自定义主面板(添加图表)
`Timelion`:Timelion是一个kibana时间序列展示组件(暂时不用)
`Dev Tools`:Console控制台(同CURL/POSTER,操作ES代码工具,代码提示,很方便)
`Management`:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。
1. 解压缩:kibana-7.14.0-windows-x86_64.zip,放到软件安装目录
2. 编辑 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
3. 启动&访问:
双击:bin/kibana.bat
访问:http://localhost:5601
4、后台启动方式
nohup ./kibana --allow-root&
1、导入镜像:docker load -i kibana.tar,或者自行pull
2、运行容器
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
--restart=always
-p 5601:5601 \
kibana:7.12.1
3、kibana一般启动比较慢,查看日志:docker logs -f kibana
4、在浏览器输入地址访问:http://192.168.136.161:5601,即可看到结果
head插件是ES的一个可视化管理插件,用来监视ES的状态,并通过head客户端和ES服务进行交互,比如创建映射、创建索引等。在登陆和访问head插件地址和ElasticSearch前需要事先在服务器上安装和配置好ElasticSearch以及head插件。安装完后,默认head插件的web端口为9100,ElasticSearch服务的端口为9200,使用浏览器访问head地址,如[http://IP地址:9100/](http://10.82.25.183:9100/),推荐使用Chrome浏览器,head插件对Chrome浏览器兼容更佳。进入head页面后将ElasticSearch连接输入框中填写正确的ElasticSearch服务地址,就可以监控ElasticSearch运行信息
1、什么是Node
简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
2、下载Node
由于elasticsearch-head插件是由nodejs语言编写,所以安装elasticsearch-head前需要先安装nodejs。
首先,执行以下命令安装nodejs和grunt
打开虚拟机,执行wget命令下载Node,如下图:
wget https://nodejs.org/dist/v10.15.2/node-v10.15.2-linux-x64.tar.xz
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6vGeXVvE-1679069175428)(.\assets\1571160484991.png)]
3)解压Node包
tar xvf node-v10.15.2-linux-x64.tar.xz
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgbvO7MU-1679069175429)(.\assets\1571160606899.png)]
4)设置软连接
解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:
ln -s bin/npm /usr/local/bin/
ln -s bin/node /usr/local/bin/
在/etc/profile中配置好path环境变量
vi ~/.bash_profile
export NODE_HOME=/opt/nodejs/node-v10.15.2-linux-x64
export PATH=$PATH:$NODE_HOME/bin
保存退出,使文件生效
source ~/.bash_profile
查看node安装版本,执行 node -v 验证安装如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0xNoeb4B-1679069175429)(.\assets\1571160954958.png)]
安装grunt(运行在Node.js上面的任务管理器(task runner)),为了获得Grunt的更多产品特性,需要全局安装Grunt’s 命令行接口(CLI),使用npm进行安装,如下:
npm install -g grunt-cli
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5O72T9Tb-1679069175430)(.\assets\1571161497433.png)]
查看grunt版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GYE138fZ-1679069175430)(.\assets\1571161600969.png)]
输出grunt版本信息,表示安装成功。
将ElasticSearch Head-0.1.5_0.zip 解压且在浏览器以扩展程序的方式进行安装
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJebEr6d-1679069175430)(.\assets\image-20210815135605622.png)]
1、执行命令安装git
git yum install git -y
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lZIXJNde-1679069175431)(.\assets\1571161083235.png)]
2、切换到/opt目录下,执行下面的克隆命令
git clone git://github.com/mobz/elasticsearch-head.git
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5xrHL9dn-1679069175432)(.\assets\1571193736229.png)]
3、进入到elasticsearch-head目录
cd elasticsearch-head
4、运行
在运行之前我们需要修改下elasticsearch.yml,因为ES默认不开启跨域访问,需要添加以下配置:
#开启cors跨域访问支持,默认为false
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"
然后开始执行运行命令:
npm run start
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wBAj17cZ-1679069175432)(.\assets\1571163304853.png)]
5、访问head
浏览器输入ip:port:9100,如下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hEjP0Nc6-1679069175433)(.\assets\1571163462191.png)]
看到这个界面说明我们的head插件成功安装并且成功连接Elasticsearch。
IK分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases 注意:下载es对应版本zip包
Elasticsearch 要使用 ik,就要先构建 ik 的 jar包,这里要用到 maven 包管理工具,而 maven 需要java 环境
Elasticsearch 内置了jdk, 所以可以将JAVA_HOME设置为Elasticsearch 内置的jdk
1)设置JAVA_HOME
vim /etc/profile
# 在profile文件末尾添加
#java environment
export JAVA_HOME=/opt/elasticsearch-7.4.0/jdk
export PATH=$PATH:${JAVA_HOME}/bin
# 保存退出后,重新加载profile
source /etc/profile
2)下载maven安装包
wget http://mirror.cc.columbia.edu/pub/software/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
3)解压maven安装包
tar xzf apache-maven-3.1.1-bin.tar.gz
4)设置软连接
ln -s apache-maven-3.1.1 maven
5)设置path
打开文件
vim /etc/profile.d/maven.sh
将下面的内容复制到文件,保存
export MAVEN_HOME=/opt/maven
export PATH=${MAVEN_HOME}/bin:${PATH}
设置好Maven的路径之后,需要运行下面的命令使其生效
source /etc/profile.d/maven.sh
6)验证maven是否安装成功
mvn -v
1)下载IK
wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip
2)解压IK
由于这里是zip包不是gz包,所以我们需要使用unzip命令进行解压,如果本机环境没有安装unzip,请执行:
yum install zip yum install unzip
解压IK
unzip v7.4.0.zip
3)编译jar包
# 切换到 elasticsearch-analysis-ik-7.4.0目录cd elasticsearch-analysis-ik-7.4.0/
#打包
mvn package
4) jar包移动
package执行完毕后会在当前目录下生成target/releases目录,将其中的elasticsearch-analysis-ik-7.4.0.zip。拷贝到elasticsearch目录下的新建的目录plugins/analysis-ik,并解压
#切换目录
cd /opt/elasticsearch-7.4.0/plugins
/#新建目录
mkdir analysis-ikcd analysis-ik
#执行拷贝
cp -R /opt/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip /opt/elasticsearch-7.4.0/plugins/analysis-ik
#执行解压
unzip /opt/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip
以下为导师目录操作命令
#切换目录
cd /root/sys-centos/elasticsearch/elasticsearch-7.4.0/plugins
/#新建目录
mkdir analysis-ikcd analysis-ik
#执行拷贝
cp -R /root/sys-centos/elasticsearch/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip /root/sys-centos/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik
#执行解压
unzip /root/sys-centos/elasticsearch/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip
5)拷贝辞典
将elasticsearch-analysis-ik-7.4.0目录下的config目录中的所有文件 拷贝到elasticsearch的config目录
cp -R /opt/elasticsearch-analysis-ik-7.4.0/config/* /opt/elasticsearch-7.4.0/config
以下为导师目录操作命令
cp -R /root/sys-centos/elasticsearch/elasticsearch-analysis-ik-7.4.0/config/* /root/sys-centos/elasticsearch/elasticsearch-7.4.0/config
记得一定要重启Elasticsearch!!!
6)、windows安装
直接解压ik分词器zip包,重命名为ik,然后放入es的plugin目录,最后重启es即可。
7)、docker安装
根据 docker volume inspect es-plugins 命令找到当初创建容器挂载的插件数据卷所在位置,把加压好的ik插件文件夹上传至该目录,最后重启es即可
IK分词器有两种分词模式:ik_max_word和ik_smart模式。
1、ik_max_word
会将文本做最细粒度的拆分,比如会将“乒乓球明年总冠军”拆分为“乒乓球、乒乓、球、明年、总冠军、冠军。
#方式一ik_max_word
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "乒乓球明年总冠军"
}
ik_max_word分词器执行如下:
{
"tokens": [{
"token": "乒乓球",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
}, {
"token": "乒乓",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 1
}, {
"token": "球",
"start_offset": 2,
"end_offset": 3,
"type": "CN_CHAR",
"position": 2
}, {
"token": "明年",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 3
}, {
"token": "总冠军",
"start_offset": 5,
"end_offset": 8,
"type": "CN_WORD",
"position": 4
}, {
"token": "冠军",
"start_offset": 6,
"end_offset": 8,
"type": "CN_WORD",
"position": 5
}]
}
2、ik_smart
会做最粗粒度的拆分,比如会将“乒乓球明年总冠军”拆分为乒乓球、明年、总冠军。
#方式二ik_smart
GET /_analyze
{
"analyzer": "ik_smart",
"text": "乒乓球明年总冠军"
}
ik_smart分词器执行如下:
{
"tokens": [{
"token": "乒乓球",
"start_offset": 0,
"end_offset": 3,
"type": "CN_WORD",
"position": 0
}, {
"token": "明年",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 1
}, {
"token": "总冠军",
"start_offset": 5,
"end_offset": 8,
"type": "CN_WORD",
"position": 2
}]
}
由此可见 使用ik_smart可以将文本"text": "乒乓球明年总冠军"分成了【乒乓球】【明年】【总冠军】
这样看的话,这样的分词效果达到了我们的要求。
在IK分词器config目录,有个文件叫:IKAnalyzer.cfg.xml
DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置comment>
<entry key="ext_dict">ext.dicentry>
<entry key="ext_stopwords">stopword.dicentry>
properties>
1、词库拓展
在ext.dit文件中添加需要拓展的词汇,注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑
2、词库停用
在stopword.dit文件中添加需要拓展的词汇,注意当前文件的编码必须是 UTF-8 格式,严禁使用Windows记事本编辑
3、重启ES让操作生效
下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases 注意:下载es对应版本zip包
1、Docker官网:https://www.docker.com
2、Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用, 支持周期 24 个月。
3、Docker CE 分为 `stable` `test` 和 `nightly` 三个更新频道。
4、官方网站上有各种环境下的 [安装指南](https://docs.docker.com/install/),这里主要介绍 Docker CE 在 CentOS上的安装。
5、Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我 们在CentOS 7安装Docker
# 如果之前安装过旧版本的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、yum 包更新到最新
yum -y update
# 2、安装需要的软件包,yum-utils提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
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
# 4、 安装docker,出现输入的界面都按 y
yum makecache fast
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
默认情况下,拉取镜像时将会从docker hub(https://hub.docker.com/)上下载 ,而国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务。
由于阿里云镜像加速器为用户特有,速度快且稳定,一般会用阿里云的镜像加速器,使用步骤:
注册阿里云账号->工作台->容器镜像服务->镜像工具->镜像加速器(yz1nevhk)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://yz1nevhk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#验证:
方式一:cat /etc/docker/daemon.json
方式二:docker info
1、镜像操作
0)、搜索:docker search 镜像名称
1)、拉取:docker pull
2)、推送:docker push
3)、查看:docker images
4)、查看所有镜像ID:docker images -q
5)、删除:docker rmi 镜像名称
6)、删除所有:docker rmi `docker images -q`
7)、制作镜像:docker build .
8)、导出镜像:docker save -o 镜像名称.tar 镜像名称
9)、加载镜像:docker load -i 镜像名称.tar
10)、容器转为镜像:docker commit 容器名称 镜像名称
2、容器操作
1)、查看所有:docker ps -a
2)、查看正在运行:docker ps
3)、删除:docker rm 容器名称
4)、强制删除:docker rm -f 容器名称
5)、创建容器:docker create -d --name=容器名称 -p 宿主机端口:容器内端口 镜像名称
6)、创建并运行容器:docker run -d --name=容器名称 -p 宿主机端口:容器内端口 镜像名称
7)、启动容器:docker start 容器名称
8)、停止容器:docker stop 容器名称
9)、重启容器:docker restart 容器名称
10)、暂停容器:docker pause 容器名称
12)、恢复容器:docker unpause 容器名称
13)、进入容器:docker exec -it 容器名称 /bin/bash
14)、查看容器信息:docker inspect 容器名称或者容器id
15)、创建容器相关设置
1)、自启动: --restart=always
2)、挂载数据卷: -v es-data:/usr/share/elasticsearch/data
3)、创建网络: docker network create es-net
4)、加入网络:--network es-net
5)、端口映射: -p 宿主机端口:容器内端口
16)、修改容器设置语法
docker update 相关设置 容器ID
如:修改容器不再自启动:docker update --restart=no 容器ID
3、数据卷操作
1)、创建数据卷:docker volume create 数据卷名称 (位于/var/lib/docker/volume目录)
2)、查看单个数据卷详情:docker volume inspect 数据卷名称
3)、查看数据卷列表:docker volume ls
4)、删除数据卷:docker volume rm 数据卷名称
5)、删除未使用的数据卷:docker volume prune
6)、创建容器时挂载数据卷
1)、挂载数据卷(会自动创建数据卷):docker run -v 数据卷名称:容器内目录路径
2)、挂载指定目录(要自己创建):docker run -v 目录绝对路径:容器内目录路径
1、Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
2、Dockerfile的第一行必须是FROM,从一个基础镜像来构建
3、基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine
构建自定义的镜像时,并不需要一个个文件去拷贝,打包。
我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。
而描述上述信息的文件就是Dockerfile文件。
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWNJdslW-1679069175433)(.\assets\image-20210731180321133.png)]
更新详细语法说明,参考官网文档: https://docs.docker.com/engine/reference/builder
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AEEmb3Zf-1679069175433)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220612143055337.png)]
1、dockerfile自定义java镜像:
1、新建一个空文件夹docker-demo
2、拷贝通过idea打包好的docker-demo.jar文件到docker-demo这个目录
3、拷贝jdk8.tar.gz文件到docker-demo这个目录
4、拷贝Dockerfile到docker-demo这个目录
5、运行docker构建镜像命令: docker build -t javaweb:1.0 .(点表示当前目录的dockerfile文件)
docker build -f ./centos_dockerfile -t itheima_centos:1 .
6、最后访问:http://虚拟机ip:8090/hello/count
一、介绍
1、Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!相当于
批量的docker run
2、首先Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下:
version: "3.8"
services:
# 典型定义容器运行方式一:基于已有镜像构建容器
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
- "/tmp/mysql/data:/var/lib/mysql"
- "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
# 典型定义容器运行方式二:基于dockerfile临时构建镜像,然后起容器
web:
build: .
ports:
- "8090:8090"
上面的Compose文件就描述一个项目,其中包含两个容器:
- mysql:一个基于`mysql:5.7.25`镜像构建的容器,并且挂载了两个目录
- web:一个基于`docker build`临时构建的镜像容器,映射端口时8090
3、定义好docker-compose文件后,只需要在该文件的当前目录运行命令即可完成应用的快速部署:
docker-compose up -d
4、DockerCompose的详细语法参考官网:https://docs.docker.com/compose/compose-file/
5、可以将DockerCompose文件看做是将多个docker run命令写到一个文件,只是语法稍有差异。
二、安装
1、方式一:linux通过命令下载:
# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname
-s`-`uname -m` > /usr/local/bin/docker-compose
2、方式二:直接将docker-compose文件上传至linux目录
/usr/local/bin/
3、修改docker-compose文件权限,添加执行权限
chmod +x /usr/local/bin/docker-compose
4、下载Base自动补全命令:
# 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/
docker-compose > /etc/bash_completion.d/docker-compose
如果下载无反应或者报错执行(原因为无法解析该域名,可以添加域名解析映射):
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts
1、将cloud-demo目录上传至linux,目录结构:
cloud-dmo
gateway
app.jar : gateway微服务打包后形成的jar
Dockerfile : gateway微服务的dokerfile
order-service
app.jar : order-service微服务打包后形成的jar
Dockerfile : order-service微服务的dokerfile
user-service
app.jar : user-service微服务打包后形成的jar
Dockerfile : user-service微服务的dokerfile
mysql : 用来构建mysql容器时进行数据卷挂载
conf : mysql的配置文件
data : mysql数据库数据
docker-compose.yml :docker-compose文件
其中微服务配置文件中的连接信息可以用dockercmpose文件中的容器名
2、docker-compose.yml说明
version: "3.2"
services:
#容器名
nacos:
image: nacos/nacos-server
environment:
MODE: standalone
ports:
- "8848:8848"
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
- "$PWD/mysql/data:/var/lib/mysql"
- "$PWD/mysql/conf:/etc/mysql/conf.d/"
userservice:
build: ./user-service
orderservice:
build: ./order-service
gateway:
build: ./gateway
ports:
- "10010:10010"
3、在docker-compose.yml所在目录执行命令
docker-compose up -d
4、查看各个容器运行情况
docker-compose logs -f 容器名
5、注意:由于nacos启动速度较慢,三个微服务启动的时候,nacos尚未启动,所以在nacos启动完成后,三个微服务还
需要进行重启
docker-compose restart gateway userservice orderservice
6、启动没有问题访问网关(网关端口:10010)
http://192.168.200.161:10010/order/101?authorization=admin
搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。
官网地址:https://hub.docker.com/_/registry
1、 简化版镜像仓库
Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化
界面,搭建方式比较简单,命令如下:
1)、拉取镜像: docker pull registry
2)、启动私有仓库容器
docker run -d \
--restart=always \
--name registry \
-p 5000:5000 \
-v registry-data:/var/lib/registry \
registry
命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。
访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像
2、 带有图形化界面版本
使用DockerCompose部署带有图象界面的DockerRegistry,命令如下:
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8000:80
environment:
- REGISTRY_TITLE=你自己的私有仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
3、配置Docker信任地址
此步骤用于让 docker 信任私有仓库地址,私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.200.161:8000"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker
# 启动镜像容器
docker-compose start registry ui
4、推送、拉取镜像
推送镜像到私有镜像服务必须先tag,步骤如下:
1)、重新tag本地镜像,名称前缀为私有仓库的地址 : 192.168.200.161:8000/
docker tag redis:7.0 192.168.200.161:8000/redis:1.0
2)、推送镜像
docker push 192.168.200.161:8000/redis:1.0
3)、拉取镜像
docker pull 192.168.200.161:8000/redis:1.0
1、介绍
官网地址: https://www.consul.io
Consul 是由 HashiCorp 基于 Go 语言开发的,支持多数据中心,分布式高可用的服务发布和注册服务软件。
• 用于实现分布式系统的服务发现与配置。
• 使用起来也较为简单。具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,
方便部署 。
2、启动
dev模式:不会持久化数据
consul agent -dev
server模式:持久化数据
consul agent -server -ui -bootstrap-expect 1 -data-dir D:\consul\data -node=n1 -bind=127.0.0.1
3、访问控制台
localhost:8500
1、介绍
Nacos(Dynamic Naming and Configuration Service) 是阿里巴巴2018年7月开源的项目。
• 官网:https://nacos.io/
• 下载地址: https://github.com/alibaba/nacos/releases
• 它专注于服务发现和配置管理领域 致力于帮助您发现、配置和管理微服务。Nacos 支持几乎所有主流类型的“服
务”的发现、配置和管理。
• 一句话概括就是 Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。
2、启动(standalone模式:单机)
startup -m standalone
3、访问控制台
localhost:8848/nacos
用户名:nacos 密码:nacos
1、Eureka server端为注册中心
2、Eureka client端为服务提供方、服务消费方
Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。
可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLUPRWvs-1679069175434)(.\assets\image-20210715193149837.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikiRbMF0-1679069175434)(.\assets\image-20210715193224094.png)]
因为下载的是zip包,解压缩即可使用,目录结构如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XdeWFy5t-1679069175434)(.\assets\image-20210715193334367.png)]
其中的bin目录就是执行的脚本,其中包含启动脚本:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oESwBkHs-1679069175435)(.\assets\image-20210715193414601.png)]
双击即可运行,但是有两点注意:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YNcWK9if-1679069175435)(.\assets\image-20210715193730096.png)]
默认Jmeter的语言是英文,需要设置:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kUNwnwoX-1679069175435)(.\assets\image-20210715193838719.png)]
效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ssTl4cHS-1679069175436)(.\assets\image-20210715193914039.png)]
注意:上面的配置只能保证本次运行是中文,如果要永久中文,需要修改Jmeter的配置文件
打开jmeter文件夹,在bin目录中找到 jmeter.properties,添加下面配置:
language=zh_CN
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-483HBVdW-1679069175436)(.\assets\image-20210715194137982.png)]
注意:前面不要出现#,#代表注释,另外这里是下划线,不是中划线
1、在测试计划上点鼠标右键,选择添加 > 线程(用户) > 线程组:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fDmpP0QI-1679069175436)(.\assets\image-20210715194413178.png)]
2、在新增的线程组中,填写线程信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-40Ht7xFP-1679069175437)(.\assets\image-20210715195053807.png)]
3、给线程组点鼠标右键,添加http取样器:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vS7RbWoV-1679069175437)(.\assets\image-20210715195144130.png)]
4、编写取样器内容:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3yUdPg6F-1679069175438)(.\assets\image-20210715195410764.png)]
5、添加监听报告:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LRRanSgv-1679069175438)(.\assets\image-20210715195844978.png)]
6、添加监听结果树:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SzU1podO-1679069175438)(.\assets\image-20210715200155537.png)]
7、汇总报告结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvSlsoia-1679069175438)(.\assets\image-20210715200243194.png)]
8、结果树:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0hUheK4H-1679069175439)(.\assets\image-20210715200336526.png)]
官方的安装指南地址为 : https://blog.rabbitmq.com/posts/2015/04/scheduling-messages-with-rabbitmq
下载地址:https://www.rabbitmq.com/download.html
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9mMAitb-1679069175439)(.\assets\image-20220321001745164.png)]
下载地址:https://www.erlang.org/downloads
1、下载对应版本的Erlang , 如rabbitmq 3.8.14 对应的erlang最佳版本为 : erlang 23
2、配置环境变量,cmd 下命令:erl 可测试erlang版本
下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.14
官方的安装指南地址为:https://blog.rabbitmq.com/posts/2015/04/scheduling-messages-with-rabbitmq
准备工作:
1、删除 C:\Users\Administrator\AppData\Roaming\RabbitMQ 目录;
2、Administrator下的.erlang.cookie拷贝至 C:\Windows\System32\config\systemprofile目录
3、删除注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Ericsson 下的 Erlang
4、rabbitmq-server-3.8.14.exe 双击安装即可
5、安装控制台等插件 cmd下命令:rabbitmq-plugins enable rabbitmq_management
出现以下界面,则开启成功:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kxaJPUP1-1679069175439)(.\assets\image-20220321002859792.png)]
6、访问:localhost:15672 添加自定义用户
7、下载延时插件并放入rabbitmq 的 plugins目录
RabbitMQ有一个官方的插件社区,地址为:https://www.rabbitmq.com/community-plugins.html
其中包含各种各样的插件,包括我们要使用的DelayExchange插件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iq0MFU4B-1679069175440)(assets/image-20210713104511055.png)]
如:GitHub页面下载3.8.9版本的插件(对应RabbitMQ的3.8.5以上版本),地址为:
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/tag/3.8.9。
插件名字:rabbitmq-delayed-message-exchange-3.8.9-0199d11c.ez
安装插件, cmd下命令:rabbitmq-plugins enable rabbitmq_delayed_message_exchange
8、services.msc 检查rabbitmq服务是否正常开启
9、补充:
重装完成后若RabbitMQ service未安装则:
通过:rabbitmq-service install 安装service;
通过:rabbitmq-service start 启动service
通过:rabbitmq-plugins enable rabbitmq_management 启动插件
通过:rabbitmq-plugins enable rabbitmq_delayed_message_exchange 开启延时消息插件
如果服务列表没有rabbitmq,则
通过:rabbitmq-service.bat install 来注册服务
后台启动rabbitmq-server:rabbitmq-server -detached
linux安装 https://blog.csdn.net/koponbs/article/details/110094811
1、下载镜像 : docker pull rabbitmq:3.8-management
2、或者下载好镜像后,直接load: docker load -i mq.tar
3、执行命令运行MQ容器:
docker run \
-e RABBITMQ_DEFAULT_USER=itcast \
-e RABBITMQ_DEFAULT_PASS=123321 \
-v mq-plugins:/plugins \
--name mq \
--hostname mq \
-p 15672:15672 \
-p 5672:5672 \
-d \
rabbitmq:3-management
4、延时插件下载后放置在数据卷下:mq-plugins
1)、查看数据卷对应的目录位置:docker volume inspect mq-plugins
2)、进入容器内部:docker exec -it mq bash
3)、开启延时插件:rabbitmq-plugins enable rabbitmq_delayed_message_exchange
源码地址:https://gitee.com/xuxueli0323/xxl-job
文档地址:https://www.xuxueli.com/xxl-job/
1、下载项目源码并解压,获取 “调度数据库初始化SQL脚本” 并执行即可。
位置:`/xxl-job/doc/db/tables_xxl_job.sql` 共8张表
- xxl_job_lock:任务调度锁表;
- xxl_job_group:执行器信息表,维护任务执行器信息;
- xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
- xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
- xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
- xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
- xxl_job_user:系统用户表;
调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;
如果mysql做主从,调度中心集群节点务必强制走主库;
2、解压源码,按照maven格式将源码导入IDE, 修改xxl-job-admin的数据库密码
3、启动类启动项目,访问路径:localhost:8080/xxl-job-admin
默认登录账号 “admin/123456”
1、创建mysql容器,初始化xxl-job的SQL脚本
docker run -p 3306:3306 --name mysql57 \
-v /opt/mysql/conf:/etc/mysql \
-v /opt/mysql/logs:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
2、拉取xxl-job镜像:docker pull xuxueli/xxl-job-admin:2.3.0
3、创建容器
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.200.130:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=root" \
-p 8888:8080 -v /tmp:/data/applogs \
--name xxl-job-admin --restart=always -d xuxueli/xxl-job-admin:2.3.0
Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。官网: http://jenkins-ci.org/。
0、安装JDK (验证:java -version)
1.1、采用YUM方式安装
1)、加入jenkins安装源:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
2)、执行yum命令安装:yum -y install jenkins
3)、卸载
#1、卸载
sudo yum remove jenkins
#2、彻底删除残留文件:
find / -iname jenkins | xargs -n 1000 rm -rf
1.2、采用RPM安装包方式
1)、Jenkins安装包下载地址:https://pkg.jenkins.io/redhat-stable/
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.190.1-1.1.noarch.rpm
2)、执行安装:
rpm -ivh jenkins-2.190.1-1.1.noarch.rpm
3)、卸载
#1、卸载
rpm -e jenkins
#2、检查是否卸载成功
rpm -ql jenkins
#2、彻底删除残留文件:
find / -iname jenkins | xargs -n 1000 rm -rf
2、修改配置文件:
vi /etc/sysconfig/jenkins
3、修改内容
# 修改为对应的目标用户, 这里使用的是root
$JENKINS_USER="root"
# 服务监听端口
JENKINS_PORT="16060"
4、修改目录权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
5、重启:systemctl restart jenkins
6、创建JAVA环境的软链接:
ln -s /root/install/jdk/jdk1.8.0_171/bin /usr/bin/java
7、管理后台初始化设置
按照界面提示,去相应目录获取initialAdminPassword填入控制台
8、按默认设置,把建议的插件都安装上(需要大概10分钟,安装失败可重试)
9、安装完成之后, 创建管理员用户(设置jenkins管理员登录用户名lwd、密码lwd、全名、电子邮箱地址)
10、如果systemctl restart jenkins启动不了,可以用如下方式启动:
后台启动jenkins并指定端口:nohup jenkins --httpPort=9999 &
或:nohup java -jar jenkins.war --httpPort=9999 &
停止:
1、查找jenkins进程:ps -ef|grep jenkins
2、杀死进程 kill -9 xxxx
备注:jenkins war包存放目录: /usr/share/java/jenkins.war
访问:http://192.168.200.161:9999
重启:http://192.168.200.161:9999/restart
停止:http://192.168.200.161:9999/exit
重载:http://192.168.200.161:9999/reload
11、进入【系统管理】-【插件管理】- 标签页的【可选插件】下载安装 jenkins 插件
- Maven Integration: Maven 集成管理插件(3.19)。
- Docker: Docker集成插件(1.2.9)。
- GitLab: GitLab集成插件(1.5.35)。
- Publish Over SSH:远程文件发布插件(1.24)。
- SSH: 远程脚本执行插件。 (2.6.1)
注意,如果没有安装按钮,需要更改配置
在安装插件的高级配置中,修改【升级站点】的链接为:http://updates.jenkins.io/update-center.json保存
12、安装git (验证:git version)
13、安装maven(验证:mvn -v)
14、安装docker(验证:docker -v)
15、进入【系统管理】--> 【全局工具配置】进行全局配置
逐个配置JDK、maven、docker、git在机器上的安装目录(name,home)
软件的安装目录:可以使用whereis命令查看,比如可以通过`whereis docker`命令查看docker的安装目录