前情摘要
key管理系统差不多完成了。
申请服务器还没下来,说是内存告急了。
把部署到服务器上需要的环境准备了下,梳理了下步骤,也记录下来吧。
部署项目到Linux所需环境
后端部署
MySQL(直接在Linux上安装)
一、下载
地址:MySQL
二、安装
1、创建文件夹存放安装包
mkdir /soft/mysql cd /soft/mysql
2、将上传的压缩包解压到创建好的文件夹中
# 在当前目录下(mysql)下创建一个 mysql-8.0.26 文件夹 mkdir mysql-8.0.26 # 解压安装包到该目录下 tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.26
3、下载插件
yum install openssl-devel # 和 yum -y install libaio perl net-tools
4、安装好插件,一次安装 rpm 包
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
安装成功后,系统会自动注册一个 mysqld 服务
使用以下命令启动 mysql
systemctl start mysqld
rpm 安装 MySQL 会生成一个临时密码,可在 /var/log/mysqld.log文件中查找该密码
cat /var/log/mysqld.log
可以用这个密码登录 MySQL
二、安装MySQL
1、搜索镜像
docker search mysql
2、拉取镜像
docker pull mysql:8.0.26
3、创建容器,设置端口映射、目录映射
注意更换密码为强密码
# 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysql docker run --name mysql -v /myapp/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26 docker run -id \ -p 3307:3306 \ --name=c_mysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/logs:/logs \ -v $PWD/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:8.0.26
4、进入容器
docker exec –it c_mysql /bin/bash
5、将本地数据库导出sql文件导入到服务器上的数据库中
三、部署SpringBoot项目
先使用maven打包工具导出jar包
服务器开放项目对应端口
1、安全组开放
2、防火墙开放
# firewall-cmd --zone=public --add-port=端口号/tcp --permanent firewall-cmd --zone=public --add-port=7777/tcp --permanent
3、重启防火墙以生效
firewall-cmd --reload
4、编写 Dockerfile 文件
jar包同级目录下
FROM java:8 #定义父镜像 MAINTAINER itfeng<xxxxxx666@163.com> #定义作者信息 #ADD 文件名 app.jar (我到时打算把jar包和Dockerfile文件放在同一级目录文件) ADD ./group5-0.0.1-SNAPSHOT.jar app.jar #将jar包添加到容器 CMD java -jar app.jar #定义容器启动执行的命令 app.jar的名字可自取
5、Dockerfile构建镜像
docker build -f ./Dockerfile -t app .
6、创建容器
docker run -id -ip 8888:8888 app
7、查看正在运行的容器
docker ps
Docker 方式
Docker
简化部署
一、安装
# 搭建gcc环境 yum -y install gcc yum -y install gcc-c++ # 安装所需软件包 yum install -y yum-utils # 装镜像仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 新 yum 软件包索引 yum makecache fast # 安装 docker 引擎 yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 启动 docker systemctl start docker
二、拉取镜像
docker pull java:8 docker pull mysql:8.0.26 docker pull redis:6.0.8 docker pull nginx:1.18.0 # 查看镜像 docker images
三、部署后端
启动数据库容器
docker run --name mysql -v /myapp/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26
启动Redis容器
docker run -d --name redis -p 6379:6379 redis:6.0.8 --requirepass "123456"
导入sql数据
查看容器id
docker ps -a
进入mysql容器
docker exec -it [容器id] /bin/bash
登录mysql
mysql -uroot -p
创建数据库,并在指定数据库使用source命令导入数据
或者直接使用navicat连接远程数据库,导入sql
进入jar包同级目录下,创建Dockerfile文件
#基础镜像使用jdk1.8 FROM java:8 #作者 MAINTAINER pan # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中并更名 ADD ruoyi-admin.jar app.jar # 运行jar包 RUN bash -c 'touch /app.jar' # 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] #ENTRYPOINT ["nohup","java","-jar","/data/cat/ruoyi-admin.jar","&"] #暴露8085端口 EXPOSE 8085
构建镜像
docker build -t cat:1.0 .
查看镜像
docker images
启动后端项目镜像
docker run -d --name cat -p 8085:8085 cat:1.0
查看容器是否启动成功
docker ps -a
浏览器访问
四、前端部署
创建nginx工作目录
#需要一个conf文件存放目录,和html文件目录,及日志存放目录 mkdir -p /data/applications/nginx/conf mkdir -p /data/applications/nginx/html mkdir -p /data/logs
启动nginx容器
docker run --name nginx -p 80:80 -d nginx:1.18.0
复制容器中配置文件目录到本机,然后删除该容器
# 复制配置 docker cp nginx:/etc/nginx/nginx.conf /data/applications/nginx/conf/nginx.conf docker cp nginx:/etc/nginx/conf.d /data/applications/nginx/conf/conf.d docker cp nginx:/usr/share/nginx/html /data/applications/nginx/ #先用 [docker ps – a] 命令 找到对应容器ID #才可以删除容器 docker rm -f [容器ID]
启动新的nginx容器
docker run -d \ -p 80:80 \ -p 443:443 \ --name nginx \ --restart=always \ --network-alias nginx \ -e TZ="Asia/Shanghai" \ -v /data/applications/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /data/applications/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /data/logs/nginx:/var/log/nginx \ -v /data/applications/nginx/html:/usr/share/nginx/html \ -v /data/applications/nginx/cert:/etc/nginx/cert \ nginx:1.18.0
查看容器
docker ps -a
浏览器访问
修改项目配置
.env.production文件 修改公网IP和端口号
知识分享
关于后台知识分享PPT,自己做的时候考虑的问题太少了,确实字太密密麻麻了,没有图示,看起来非常生硬,也容易视觉疲劳,在导师建议下修改了一下。