一、说明
前端技术体系:Vue3 + Nuxt3 + Vite5 + Vue-Router + Element-Plus + Pinia + Axios
后端技术体系:Spring Cloud Alibaba2021 + MySQL8 + Nacos + Seata + Mybatis + Druid + redis
后端系统:roncoo-education(核心框架:Spring Cloud Alibaba):码云 | Github
门户系统:roncoo-education-web(核心框架:Nuxt3):码云 | Github
管理系统:roncoo-education-admin(核心框架:Vue3):码云 | Github
部署系统:改为AlmaLinux---deepseek推荐替代centos7方案,下次改,目前为ubuntu
centos7.9 参考:
二、安装ubuntu及其初始设置
安装简单,网上看帖
# 更新和升级系统
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
# 安装一些常用的工具和库,这些工具可以帮助你更高效地工作
sudo apt install git curl wget vim htop tree
# 配置用户和权限
sudo usermod -aG sudo x58
# 定期清理不再需要的包可以释放磁盘空间并提高系统性能
sudo apt autoremove
sudo apt clean
# 定期检查并应用系统和应用程序的安全补丁。Ubuntu会定期发布安全更新。确保你的系统是最新的。
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade && sudo apt autoremove && sudo apt clean && sudo reboot
三、安装docker-compose
1、安装docker
# 更新
sudo apt update
sudo apt upgrade -y
#安装必要的依赖包
sudo apt install apt-transport-https ca-certificates curl software-properties-common
# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 Docker 的 APT 源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#添加源后,更新 APT 包索引:
sudo apt update
# 安装 Docker CE
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 验证 Docker 是否安装成功
sudo systemctl status docker
# 设置自启动
sudo systemctl enable docker
验证 Docker 是否自启动
sudo systemctl is-enabled docker
# 阿里加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "1"
},
"registry-mirrors": [
"https://x9r52uz5.mirror.aliyuncs.com",
"https://dockerhub.icu",
"https://docker.chenby.cn",
"https://docker.1panel.live",
"https://docker.awsl9527.cn",
"https://docker.anyhub.us.kg",
"https://dhub.kubesre.xyz"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2、使用官方安装脚本来安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.33.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
3、应用执行权限
sudo chmod +x /usr/local/bin/docker-compose
4、验证安装
docker-compose --version
education@education:~$ docker-compose --version
Docker Compose version v2.33.1
四、docker-compose安装mysql8
1、创建挂载目录
sudo mkdir -p /home/docker/mysql8/log
sudo mkdir -p /home/docker/mysql8/data
sudo mkdir -p /home/docker/mysql8/conf.d
#授权
sudo chown -R x58:x58 /home/docker
2、添加配置文件my.cnf(可以不改用默认)
vi /home/docker/mysql8/conf.d/my.cnf
###### [client]配置模块 ######
[client]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock
###### [mysql]配置模块 ######
[mysql]
# 设置MySQL客户端默认字符集
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock
###### [mysqld]配置模块 ######
[mysqld]
port=3306
user=mysql
# 设置sql模式 sql_mode模式引起的分组查询出现*this is incompatible with sql_mode=only_full_group_by,这里最好剔除ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id = 1
# MySQL8 的密码认证插件 如果不设置低版本navicat无法连接
default_authentication_plugin=mysql_native_password
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 0: 表名将按指定方式存储,并且比较区分大小写;
# 1: 表名以小写形式存储在磁盘上,比较不区分大小写;
lower_case_table_names=0
max_allowed_packet=16M
# 设置时区
default-time_zone='+8:00'
3、 编写 docker-compose.yml 文件
目录在/home/docker/mysql8下
sudo vi /home/docker/mysql8/docker-compose.yml
services:
mysql: # 服务名称
image: mysql:8.0.18 # 或其它mysql版本
container_name: mysql8 # 容器名称
environment:
- MYSQL_ROOT_PASSWORD=123456 # root用户密码
# - TZ=Asia/Shanghai # 设置容器时区 我这里通过下面挂载方式同步的宿主机时区和时间了,这里忽略
volumes:
- /home/docker/mysql8/log:/var/log/mysql # 映射日志目录,宿主机:容器
- /home/docker/mysql8/data:/var/lib/mysql # 映射数据目录,宿主机:容器
- /home/docker/mysql8/conf.d:/etc/mysql/conf.d # 映射配置目录,宿主机:容器
- /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题,ro是read only的意思,就是只读。
ports:
- "127.0.0.1:3306:3306" # 指定宿主机端口与容器端口映射关系,宿主机:容器
restart: always # 容器随docker启动自启
4、启动容器
sudo docker-compose -f /home/docker/mysql8/docker-compose.yml up -d
5、运行后查看启动容器的情况
docker ps
x58@x58:/home/docker$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ab1622668e32 mysql:8.0.18 "docker-entrypoint.s…" 22 seconds ago Up 17 seconds 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
6、用DBeaver连接
7、导入数据
#创建数据库
os_course
os_system
os_user
nacos_config
os_job
数据库安装over
五、docker-compose安装redis
1、创建挂载目录
sudo mkdir -p /home/docker/redis6/log
sudo mkdir -p /home/docker/redis6/data
sudo mkdir -p /home/docker/redis6/conf
sudo chown -R x58:x58 /home/docker
2、添加配置文件
下载配置文件连接,从里面拿到redis.conf
在上一步创建的redis配置文件目录(/home/docker/redis6/conf)下,将上面下载解压缩后的redis.conf文件拷贝到此目录下,启动时,会将这个配置文件挂载到容器中。
3、修改配置文件
# 关闭保护模式,允许远程连接
protected-mode no
# 开启AOF持久化
appendonly yes
# 密码
requirepass 123456
bind 0.0.0.0
4、编写docker-compose.yml编排文件
sudo vi /home/docker/redis6/docker-compose.yml
services:
redis: # 服务名称
image: redis:6.2.17 # redis镜像版本
container_name: redis6.2.17 # 容器名称
ports:
- 6379:6379 # 指定宿主机端口与容器端口映射关系,宿主机:容器
volumes:
- /home/docker/redis6/conf/redis.conf:/etc/redis/redis.conf # 映射配置文件目录,宿主机:容器
- /home/docker/redis6/data:/data # 映射数据目录,宿主机:容器
restart: always # 容器开机自启
privileged: true # 获取宿主机root权限
command: ["redis-server","/etc/redis/redis.conf"] # 指定配置文件启动redis-server进程
4、启动容器
sudo docker-compose -f /home/docker/redis6/docker-compose.yml up -d
sudo docker-compose down
docker-compose up -d --no-deps redis6.2.17
这里,docker-compose down 会停止并删除所有服务,然后你可以通过 docker-compose up -d --no-deps my_service 来单独启动你希望运行的服务。
5、查看容器
x58@x58:/home/docker/redis6$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d25c4e28d97 redis:6.2.17 "docker-entrypoint.s…" 55 seconds ago Restarting (1) 14 seconds ago redis6.2.17
ab1622668e32 mysql:8.0.18 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tc