VirtualBox
下载地址:https://www.virtualbox.org/wiki/Downloads
安装
网络配置
CentOS7
阿里云镜像下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/
开启远程登陆
修改配置
路径:/etc/sysconfig/network-scripts/ifcfg-enp0s3
修改:ONBOOT=yes
路径:/etc/ssh/sshd_config
修改
PermitRootLogin yes
PasswordAuthentication yes
然后执行:systemctl restart sshd
查看IP:ip addr
FinalShell
下载地址:http://www.hostbuf.com/t/988.html
连接
docker
文档地址:https://docs.docker.com/engine/install/centos/
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动Docker , 查询docker容器已有的镜像, 并设置随Linux系统开机⾃启动
$ sudo systemctl start docker
$ sudo docker images
$ sudo systemctl enable docker
配置docker阿⾥云镜像加速
路径:/etc/docker/daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4rx5fr6n.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
mysql
拉取镜像
docker pull mysql:5.7 1
启动mysql
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
查询已启动的容器
docker ps
修改配置
# 切换⽂件路径
cd /mydata/mysql/conf
# 创建配置⽂件
vi my.cnf
# 将下列配置信息拷⻉到配置⽂件中
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
# 重启配置信息
docker restart mysql
设置启动Docker时,即运⾏mysql
docker update mysql --restart=always
redis
拉取redis镜像
docker pull redis
配置Redis服务
# 创建配置⽂件存储路径
mkdir -p /mydata/redis/conf
# 创建配置⽂件
touch /mydata/redis/conf/redis.conf
# 填写配置信息【数据持久化AOF】
echo "appendonly yes" >> /mydata/redis/conf/redis.conf
# 填写配置信息【Keyspace notifications】
echo "notify-keyspace-events Ex" >> /mydata/redis/conf/redis.conf
启动redis镜像
docker run -p 6379:6379 --name redis --restart=always \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf --requirepass "设置密码"
Maven
在目录下新建仓库文件夹,例如apache-maven\local-ware,也可以在别处,但是一定不能在系统的文件里(比如Program Files),不然自动下载依赖时会因为写入权限不足而下载失败。
修改配置:apache-maven\conf\settings.xml
搜索“localRepository”,把仓库地址apache-maven\local-ware配置上去。
在</mirrors>前插入配置阿⾥云镜像
<mirror>
<id>
aliyunmaven
</id>
<mirrorOf>
*
</mirrorOf>
<name>
阿⾥云公共仓库
</name>
<url>
https://maven.aliyun.com/repository/public
</url>
</mirror>
在</profiles>前插入jdk1.8配置
<profile>
<id>
jdk-1.8
</id>
<activation>
<activeByDefault>
true
</activeByDefault>
<jdk>
1.8
</jdk>
</activation>
<properties>
<maven.compiler.source>
1.8
</maven.compiler.source>
<maven.compiler.target>
1.8
</maven.compiler.target>
<maven.compiler.compilerVersion>
1.8
</maven.compiler.compilerVersion>
</properties>
</profile>
Git
下载地址镜像:https://npm.taobao.org/mirrors/git-for-windows/
设置⽤户信息
# 全局Git⽤户名称
git config --global user.name “用户名”
# 全局Git⽤户邮箱
git config --global user.email “邮箱地址”
# Git push的时候记住⽤户名和密码
git config --global credential.helper store
通过上⾯的命令设置的信息会保存在cd⽂件中
以上配置信息默认存储在⽤户⽬录下,如果设置错误,可以删除以下如图⽂件,重新操作以上命令即可。
InteliJ IDEA
New Module时没有spring Initializr,File=>Settings=>Plugins,搜索Spring Assistant安装
New Module报错
解决方法:将Choose Spring Initializr server改成Cusom,并且输入地址:https://start.aliyun.com/
参考:https://blog.youkuaiyun.com/learnpythonL/article/details/106172314
启动goods模块时报错
goods/src/main/resources/application.properties里面的内容全部注释掉
新建文件goods/src/main/resources/application.yml,填入内容,注意缩进!
启动renren-fast报错
pom.xml里的lombok版本升级
参考:https://blog.youkuaiyun.com/wanniwa/article/details/109155143
Nacos
部署
1.拉取镜像
docker pull nacos/nacos-server
2.在MySQL中创建用于存储配置信息的数据库,SQL文件URL如下
3.运行
docker run -d -e PREFER_HOST_MODE=hostname -e MODE=standalone -e JVM_XMS=256m -e JVM_XMX=256m -e JVM_XMN=128m -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=数据库ip地址或域名 -e MYSQL_SERVICE_PORT=端口 -e MYSQL_SERVICE_USER=用户名 -e MYSQL_SERVICE_PASSWORD=密码 -e MYSQL_SERVICE_DB_NAME=存放信息的数据库名 -p 8848:8848 --name nacos --restart=always nacos/nacos-server
常见错误
网关gateway启动报错
spring-boot-starter-web冲突,移除!
包括以下的
启动报Protocol handler start failed
端口冲突,换一个端口
网关跳转时报错
common模块有tomcat依赖,在gateway中排除
参考:https://blog.youkuaiyun.com/CerDer/article/details/112686484?spm=1001.2014.3001.5501
ELK
常规部署
- 开启外网访问
1、设置Elasticsearch对外访问的Host
配置文件地址:/home/es/elasticsearch-7.10.2/config/elasticsearch.yml
network.host: 0.0.0.0
- 开放Linux对外访问端口
使用命令:/sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT
使用docker部署
创建存放配置的文件夹
mkdir /home/elk
elasticsearch‐head
下载docker镜像
docker pull mobz/elasticsearch‐head:5
启动
docker run ‐di --restart=always ‐‐name=es-head ‐p 9100:9100 mobz/elasticsearch‐head:5
elasticsearch
下载docker镜像
docker pull elasticsearch:7.10.1
创建配置文件
vi /home/elk/elasticsearch.yml
在里面添加如下配置:
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 访问ID限定,0.0.0.0为不限制,生产环境请设置为固定IP
transport.host: 0.0.0.0
# elasticsearch节点名称
node.name: node-1
# elasticsearch节点信息
cluster.initial_master_nodes: ["node-1"]
# 下面的配置是关闭跨域验证
http.cors.enabled: true
http.cors.allow-origin: "*"
启动
docker run -di --restart=always -p 9200:9200 -p 9300:9300 --name=elasticsearch -v /home/elk/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.10.1
logstash
下载docker镜像
docker pull logstash:7.10.1
创建配置文件
vi /home/elk/logstash.conf
在里面添加如下配置:
input {
tcp {
port => 5044
codec => "plain"
}
}
filter{
}
output {
# 这个是logstash的控制台打印(进行安装调试的开启,稍后成功后去掉这个配置即可)
stdout {
codec => rubydebug
}
# elasticsearch配置
elasticsearch {
hosts => ["elasticsearch的IP:9200"]
}
}
启动
docker run -di --restart=always -p 5044:5044 --name=logstash -v /home/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:7.10.1
kibana
下载docker镜像
docker pull kibana:7.10.1
创建配置文件
vi /home/elk/kibana.yml
在里面添加如下配置:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elasticsearch的IP:9200"]
# 操作界面语言设置
i18n.locale: "zh-CN"
启动
docker run -di --restart=always -p 5601:5601 --name=kibana -v /home/elk/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.10.1
安装中文分词器IKAnalyzer 7.10.1
进入容器
docker exec -it elasticsearch /bin/bash
下载插件(在容器中运行,因为github不稳定,要等很久,可能还会超时,多试几次!)
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.1/elasticsearch-analysis-ik-7.10.1.zip
退出容器
exit
重启容器
docker restart elasticsearch
OpenResty(Nginx)
安装
1.添加仓库执行命令
yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
2.执行安装
yum install openresty
3.安装成功后 会在默认的目录如下:
cd /usr/local/openresty
4.修改nginx配置
vi /usr/local/openresty/nginx/conf/nginx.conf
#user nobody; 配置文件第一行原来为这样, 现改为下面的配置
user root root;
5.重启Nginx
/usr/local/openresty/nginx/sbin/nginx -s reload
开放80端口
查看firewall的状态
firewall-cmd --state
开放80端口
firewall-cmd --permanent --add-port=80/tcp
查看防火墙的开放的端口
firewall-cmd --permanent --list-ports
重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
开机启动
修改配置文件
vi /lib/systemd/system/openresty.service
[Unit]
Description=The OpenResty Application Platform
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/openresty/nginx/logs/nginx.pid
ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t -c /usr/local/openresty/nginx/conf/nginx.conf
ExecStart=/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
开机启动
systemctl enable openresty.service
部署
1、打包
mvn package
或者跳过测试
mvn package -D skipTests
2、编写Dockerfile
【占位符】根据实际情况替换
# Docker image for springboot file run
# Author: 【作者】
# Project: 【项目名称】
# Version 0.0.1
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER 【作者】 <【电子邮箱】>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD 【源jar文件】 app.jar
# 运行jar包
RUN sh -c 'touch /app.jar'
# 设置环境变量
ENV JAVA_OPTS=""
# 允许指定端口转发
EXPOSE 【端口号】
# 指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件。
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
3、准备部署文件
在Linux的 /home/docker/ 目录下新建文件夹,文件夹名称为项目名称
把打包好的 jar 包和 Dockerfile 放进文件夹里,保持同一级
4、部署
# 打开部署目录
cd /home/docker/【项目名称】
# 构建镜像
docker build -t 【镜像名称】:【版本号】 .
# 运行
docker run -d -p 【项目在Tomcat运行时端口】:【docker运行时端口】 【镜像名称】:【版本号】 --name=【运行容器名】 --restart=always