项目原生部署(超级无敌保姆级教程)
部署前准备工作:在服务器放行相对应的端口!!!
安装jdk
1.上传jdk的linux压缩包
2.解压
tar -zxvf jdk-8u291-linux-x64.tar.gz
3.移动并重命名
mv jdk1.8.0_291 /usr/local/jdk1.8
4.修改配置文件
vim /etc/profile
5.添加配置
export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
6.刷新配置
source /etc/profile
7.查看版本
java -version
安装docker
CentOS Docker 安装 | 菜鸟教程 (runoob.com)
自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或(这个比较垃圾)
curl -sSL https://get.daocloud.io/docker | sh
手动安装
1.卸载旧版本依赖(如果有)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装yum工具
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3.设置阿里云仓库(国内镜像源速度较快)
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装最新版本的 Docker Engine-Community 和 containerd
sudo yum install docker-ce docker-ce-cli containerd.io
5.关闭防火墙(Docke应用需要多种端口,直接关了)
# 关闭
systemctl stop firewalld
#查看是否关闭防火墙
systemctl status firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
5.启动docker
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker / service docker restart # 重启docker服务
6.查看版本(验证是否安装成功)
docker version
7.开机自启
systemctl enable docker
Docker 需要用户具有 sudo 权限,为了避免每次命令都输入sudo,可以把用户加入 Docker 用户组(官方文档)。
sudo usermod -aG docker $USER
docker使用
查看镜像
docker images
查看[所有]容器
docker ps [-l]
启动容器
docker start [容器id]
下载镜像
docker pull 镜像名
停止容器
docker stop [容器id]
删除容器
docker rm [容器id]
删除镜像
docker rmi [镜像id]
docker rmi [镜像名称]:[tag]
进入容器
docker attach [容器id]
搜索镜像
docker search 镜像名
卸载docker
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
docker安装mysql
1.拉取mysql镜像
docker pull mysql:[版本号]
2.启动mysql
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.7
# -p 映射的端口 主机:容器
# --name 取别名,执行容器名称
# -e 设置root账号密码
# -d 后台启动
3.进入容器
docker exec -it [容器id] /bin/bash
4.登录mysql
mysql -u账号 -p密码
docker启动时设置mysql自启动
docker update mysql --restart=always
5.修改权限(可选)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx';
或
ALTER USER 'root'@'%' IDENTIFIED BY 'xxx';
6.刷新mysql权限(可选)
flush privileges;
7.使用 Navicat 等工具进行数据库连接,并导入数据库文件
docker安装redis(祝redis开发者写代码没键盘🙂)
安装redis依赖(gcc依赖),我也不知道有没有屌用
yum install -y gcc tcl
1.安装redis
docker pull redis
2.创建本地映射目录用于挂载redis 配置文件和数据文件
便于以后修改配置文件,说白了就是建文件夹,不用命令也行
mkdir -p /home/docker/redis/conf/
mkdir -p /home/docker/redis/data/
3.修改文件权限为可编辑表示所有文件
chmod -R 777 /home/docker/
4.想办法得到redis.conf这个sb配置文件
-
第一种下载到本地在上传到相应的文件夹内
-
第二种用命令下载
在 /home/docker/redis/conf/
下执行
wget http://download.redis.io/redis-stable/redis.conf
用vim命令修改配置
(建议下本地修改完配置后上传,一千多行注释看恶不恶心你)
5.修改配置文件
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方#式启动redis失败(为yes时需要配置bind或者设置密码)
daemonize yes
# 设置密码
requirepass 密码
6.创建redis容器
# docker run -p 6379:6379 --name redis -v /home/config/redis/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes
# 我用的是这个 ↓
docker run -p 6379:6379 --name redis -v /home/docker/redis/conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
# -p 端口映射:前表示主机部分,:后表示容器部分
# –name 指定该容器名称
# -v 挂载文件或目录 :前表示主机部分,:后表示容器部分
# -d 表示后台启动
# --appendonly yes 开启AOF模式(持久化)
# /home/docker/redis/conf 配置文件目录
# redis-server /etc/redis/redis.conf以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/home/docker/redis/conf
7.查看redis(看他有没有生出来,如果没有把它丢回去重开)
# 查看redis进程
ps -ef | grep redis
# 进入容器(用那个看你心情)
docker exec -it [容器id] /bin/bash
docker exec -it redis redis-cli # 此处跟着的redis-cli是直接将命令输在上面了
8.进入redis
# 验证密码(如果有密码)
auth 密码
# 输入ping,查看是否连接成功(PONG为成功)
ping
9.docker设置redis自动启动
docker update redis --restart=always
docker安装redis并挂载配置文件_佛系写BUG的博客-CSDN博客_docker redis配置文件路径
Redis安装教程(超详细)_老子大威天龙的博客-CSDN博客_redis安装
下面的可能有用:
# 查看现有的redis密码
config get requirepass
# 设置redis密码
config set requirepass 密码
# 其他
# 重置密码
config set requirepass ""
# 查看容器运行日志
docker logs --since 30m <容器名>
# --since 30m 是查看此容器30分钟之内的日志情况。
# docker logs --since 30m redis
# redis.conf 配置文件
# bind 127.0.0.1 -::1 注释掉,不注释只能本机访问
protected-mode no # 默认yes,开启保护模式,限制为本地访问
port 6379 # 端口号,桥接部署集群时最好不用该端口
tcp-backlog 511
requirepass 000415
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes # 开启持久化
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
部署jar包
可通过Xftp或IDEA对服务器文件进行远程连接操作
1.上传jar包
2.授予jar包可执行权限
可用
ll
命令查看文件是否由红色变为绿色
chmod 777 XXX.jar
3.后台启动jar包
nohup java -jar jar包完整路径 >日志输出路径 &
# 如:nohup java -jar /home/project/number.jar >/home/project/logs/number.log &
# nohup 只要不关闭服务器,就一直运行。
# /home/project/number.jar 启动的jar包路径。
# >/home/project/logs/number.log 运行日志存储地址。
# & 启动后台运行(把程序递交到服务器上)
4.查看jar是否运行
ps -ef | grep XXX.jar
ps -ef | grep -v grep | grep java
linux 的grep命令屏蔽进程本身 grep --color=auto java
5.开机自启动jar包(可选)
nohup java -jar backend-1.0-SNAPSHOT.jar >jarlog.log 2>&1 &
创建自启动文件.sh
touch startjar.sh
编辑文件
vi startjar.sh
#!/bin/bash
nohup java -jar backend-1.0-SNAPSHOT.jar >jarlog.log 2>&1 &
给.sh赋予可执行权限
chmod +x startjar.sh
nohup java -jar 命令启动jar包,项目仍然会莫名其妙挂掉的解决方法_隔壁老赵的博客-CSDN博客_nohup 启动jar失效