1.安装docker 安装nginx 安mysql安装redis
docker: 从 0 到 1:CentOS7 部署 Docker 全流程,附避坑指南 + 命令速查_centos7安装docker闭坑-优快云博客
nginx:Nginx 从入门到实践:概述、命令与核心应用_nginx 描述-优快云博客
mysql: 见以下
2.环境部署
后端
JDK >= 1.8 Mysql >= 5.7.0 Redis >= 3.0 Maven >= 3.0 Node >= 12
导入idea 启动起来 更改为服务器地址


或者nacos上配置地址 或者更改本地地址测试 更改完毕以后

在target中找到jar包 并且把包复制到连接服务器工具上去

3.构建 Docker 镜像
构建Dockerfile
FROM openjdk:8-jdk-alpine MAINTAINER linxianfeng COPY xxx自己的jar包.jar /app.jar EXPOSE 8888 ENTRYPOINT ["java", "-jar", "/app.jar"]
4. 构建 Docker 镜像
在终端中进入项目根目录(确保 Dockerfile 和 target 文件夹在此目录),执行以下命令构建镜像:
# 注意末尾的点(.)表示当前目录为构建上下文 docker build -t docker-test1:v1 .
-
-t docker-test1:v1:为镜像命名(docker-test1)并添加标签(v1),方便后续引用。 -
构建成功后,可用
docker images命令查看镜像是否存在。
5. 运行 Docker 容器
使用以下命令启动容器:
# 简单启动(前台运行,可看到日志) docker run -p 8080:8080 docker-test1:v1 不建议 而且不需要用到 # 后台启动(推荐) docker run -d -p 9091:9091 --name my-docker-test1 docker-test1:v1
参数说明:
-
-d:后台运行容器。 -
-p 8080:8080:将容器的 8080 端口映射到宿主机的 8080 端口(格式:宿主机端口:容器端口)。 -
--name my-docker-test1:给容器指定一个名称,方便管理。
6. 验证启动状态
-
查看正在运行的容器:
docker ps
-
查看容器日志(替换
docker logs -f my-docker-test1
-
访问应用:在浏览器或终端中访问
http://宿主机IP:8080(如果是本地机器,可用http://localhost:8080)。
7. 停止 / 重启容器
-
停止容器:
docker stop my-docker-test1
-
重启容器:
docker restart my-docker-test1
8.构建前端资源
# 安装依赖 npm install npm install --registry=https://registry.npmmirror.com # 本地开发 启动项目 npm run dev # 打包正式环境 npm run build:prod
构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件 直接把代码复制到nginx的html中去

9.修改nginx的配置文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 192.168.65.130;
charset utf-8;
location / {
root /usr/local/nginx/html/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.65.130:8888/;
}
# springdoc proxy
location ~ ^/v3/api-docs/(.*) {
proxy_pass http://localhost:8080/v3/api-docs/$1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

重新加载配置文件 ./nginx -s reload 然后去 /sbin目录去启动 ./nginx
10.安装MySQL
1.4.1 MySQL安装
对于MySQL数据库的安装,我们将要使用前面讲解的第二种安装方式rpm进行安装。那么首先我们先了解一下什么rpm?
RPM:全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安装软件的工具。
我们要通过rpm,进行MySQL数据库的安装,主要的步骤如下:
1). 检测当前系统是否安装过MySQL相关数据库
需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:
rpm -qa 查询当前系统中安装的所有软件 rpm -qa | grep mysql 查询当前系统中安装的名称带mysql的软件 rpm -qa | grep mariadb 查询当前系统中安装的名称带mariadb的软件
通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。

通过查询,我们发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。
2). 卸载现有的MySQL数据库
在rpm中,卸载软件的语法为:
rpm -e --nodeps 软件名称
那么,我们就可以通过指令,卸载 mariadb,具体指令为:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

我们看到执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。
3). 将资料中提供的MySQL安装包上传到Linux并解压
A. 上传MySQL安装包

B. 解压到/usr/local/mysql
执行如下指令:
mkdir /usr/local/mysql tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql

4). 安装顺序安装rpm安装包
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
说明:
因为rpm安装方式,是不会自动处理依赖关系的,需要我们自己处理,所以对于上面的rpm包的安装顺序不能随意修改。
安装过程中提示缺少net-tools依赖,使用yum安装(yum是一种在线安装方式,需要保证联网)
可以通过指令(yum update)升级现有软件及系统内核

1.4.2 MySQL启动
MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql。
systemctl status mysqld 查看mysql服务状态 systemctl start mysqld 启动mysql服务 systemctl stop mysqld 停止mysql服务

说明:
可以设置开机时启动mysql服务,避免每次开机启动mysql。执行如下指令:
systemctl enable mysqld
我们可以通过如下两种方式,来判定mysql是否启动:
netstat -tunlp 查看已经启动的服务 netstat -tunlp | grep mysql 查看mysql的服务信息 ps –ef | grep mysql 查看mysql进程

备注:
A. netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
参数说明:
-l或--listening:显示监控中的服务器的Socket; -n或--numeric:直接使用ip地址,而不通过域名服务器; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况;
B. ps命令用于查看Linux中的进程数据。
1.4.3 MySQL登录
1.4.3.1 查阅临时密码
MySQL启动起来之后,我们就可以测试一下登录操作,但是我们要想登录MySQL,需要一个访问密码,而刚才在安装MySQL的过程中,并没有看到让我们设置访问密码,那这个访问密码是多少呢? 那实际上,对于rpm安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log中,我们可以查看这份日志文件,从而获取到访问密码。
可以执行如下指令:
1). cat /var/log/mysqld.log

这种方式,可以看到所有的日志数据,文件比较大时,很不方便查看数据。我们可以通过管道符 | 配合grep来对数据进行过滤。
2). cat /var/log/mysqld.log | grep password
我们可以通过上述指令,查询日志文件内容中包含password的行信息。

1.4.3.2 登录MySQL
获取到root用户的临时密码之后,我们就可以登录mysql数据库,修改root的密码,为root设置一个新的密码。并且我们还需要开启root用户远程访问该数据库的权限,这样的话,我们就可以在windows上来访问这台MySQL数据库。
执行如下指令:
①. 登录mysql(复制日志中的临时密码登录)
mysql -uroot -p
②. 修改密码
set global validate_password_length=4; 设置密码长度最低位数
set global validate_password_policy=LOW; 设置密码安全等级低,便于密码可以修改成root
set password = password('root'); 设置密码为root
③. 开启访问权限
grant all on *.* to 'root'@'%' identified by 'root';
flush privileges;
操作完上述的指令之后,数据库root用户的密码以及远程访问我们就配置好了,接下来,可以执行exit退出mysql,再次通过新的密码进行登录。

当然我们也可以使用安装在windows系统中的sqlyog或者Navicat来远程连接linux上的MySQL。

注意: 要想在windows上能够访问MySQL,还需要开放防火墙的3306端口,执行如下指令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload

11:一些杂七杂八的
有时候网慢 换源
vi /etc/docker/daemon.json
{
"registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://registry.docker-cn.com"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug": true,
"experimental": false
}
# 启动并设置自启
systemctl start docker
systemctl enable docker
2万+

被折叠的 条评论
为什么被折叠?



