在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05
一、说明
前端技术体系: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 参考:
视频教育网站开源系统的部署安装 (roncoo-education)服务器为centos7-CSDN博客https://blog.csdn.net/jiangkp/article/details/145951049?sharetype=blogdetail&sharerId=145951049&sharerefer=PC&sharesource=jiangkp&spm=1011.2480.3001.8118
二、安装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'
{
"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"]
}
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:
- 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
https://download.redis.io/releases/redis-6.2.17.tar.gzhttps://download.redis.io/releases/redis-6.2.17.tar.gz
在上一步创建的redis配置文件目录(/home/docker/redis6/conf)下,将上面下载解压缩后的redis.conf文件拷贝到此目录下,启动时,会将这个配置文件挂载到容器中。
3、修改配置文件
# 关闭保护模式,允许远程连接
protected-mode no
# 开启AOF持久化
appendonly yes
# 密码
requirepass 123456
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/tcp, 33060/tcp mysql8
####错误,查看log
sudo docker-compose logs redis
docker-compose stop docker-compose stop
命令将停止运行的容器,但不会删除它们
docker-compose down docker-compose down
命令将停止运行的容器,并且会删除已停止的容器以及已创建的所有网络。 我们可以down进一步迈出第一步,并添加-v
标记以删除所有卷。这对于通过运行在环境中进行完全重置非常有用docker-compose down -v
。
###log中出现警告
WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
sudo vi /etc/sysctl.conf
添加 vm.overcommit_memory = 1
sudo sysctl -p
6、测试
- 进入docker内部,通过redis自带的redis-cli工具进行验证
education@education:/home/docker/redis6$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
001ce6f33e91 redis:6.2.17 "docker-entrypoint.s…" 5 minutes ago Up 4 minutes 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis6.2.17
ab1622668e32 mysql:8.0.18 "docker-entrypoint.s…" 3 hours ago Up 3 hours 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
sudo docker exec -it 001ce6f33e91 /bin/bash #用CONTAINER ID
redis-cli -h 127.0.0.1 -p 6379 -a 123456
root@001ce6f33e91:/data# redis-cli -h 127.0.0.1 -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> set b 1
OK
127.0.0.1:6379> get b
"1"
- 通过 Redis Insight 测试连接
用户名:default
六、docker-compose安装elasticsearch和kibana服务
1、创建挂载目录
sudo mkdir -p /home/docker/es8/data
#授权
sudo chown -R x58:x58 /home/docker
2、编写docker-compose.yml
sudo vi /home/docker/es8/docker-compose.yml
services:
elasticsearch:
image: elasticsearch:8.15.0
container_name: elasticsearch
environment:
- node.name=es01
- cluster.name=docker-cluster
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- xpack.security.enabled=false # 禁用安全功能,方便初始测试
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /home/docker/es8/data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
networks:
- elastic
kibana:
image: kibana:8.15.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
networks:
- elastic
networks:
elastic:
driver: bridge
4、启动容器
sudo docker-compose -f /home/docker/es8/docker-compose.yml up -d
5、查看容器
x58@x58:/home/docker$ sudo docker ps
[sudo] password for x58:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
82671ac2cae2 kibana:8.15.0 "/bin/tini -- /usr/l…" 39 seconds ago Up 24 seconds 0.0.0.0:5601->5601/tcp, [::]:5601->5601/tcp kibana
2b06fc68bb13 elasticsearch:8.15.0 "/bin/tini -- /usr/l…" 39 seconds ago Up 24 seconds 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 9300/tcp elasticsearch
3bc5ecc4492b redis:6.2.17 "docker-entrypoint.s…" 54 minutes ago Up 54 minutes 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis6.2.17
9367db1fcd05 mysql:8.0.18 "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
6、查看log
sudo docker logs 82671ac2cae2
7、elasticsearch服务测试
http://192.168.1.14:9200/
获取集群健康信息
http://192.168.1.14:9200/_cluster/health?pretty
8、 验证kibana服务
http://192.168.1.14:5601/
七、Dock-compose搭建单机MinIO
1、创建挂载目录
sudo mkdir -p /home/docker/minio/data
sudo mkdir -p /home/docker/minio/config
#授权
sudo chown -R x58:x58 /home/docker
2、配置 docker-compose.yml
sudo vi /home/docker/minio/docker-compose.yml
services:
minio:
#image: minio/minio:RELEASE.2023-04-28T18-11-17Z
image: minio/minio:latest
container_name: minio
ports:
- 9000:9000 # 服务端口
- 9001:9001 # 控制台端口
environment:
- MINIO_ROOT_USER=minio # 登陆账号
- MINIO_ROOT_PASSWORD=12345678 # 密码
volumes:
- /home/docker/minio/data:/data
- /home/docker/minio/config:/root/.minio
#指定容器中的目录 /data
command: server --console-address ':9001' /data
privileged: true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
restart: always
#network_mode: host
3、启动容器
sudo docker-compose -f /home/docker/minio/docker-compose.yml up -d
4、查看容器
x58@x58:/home/docker$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aae7b971ed85 minio/minio:latest "/usr/bin/docker-ent…" 15 seconds ago Up 11 seconds (health: starting) 0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp minio
82671ac2cae2 kibana:8.15.0 "/bin/tini -- /usr/l…" 11 minutes ago Up 11 minutes 0.0.0.0:5601->5601/tcp, [::]:5601->5601/tcp kibana
2b06fc68bb13 elasticsearch:8.15.0 "/bin/tini -- /usr/l…" 11 minutes ago Up 11 minutes 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 9300/tcp elasticsearch
3bc5ecc4492b redis:6.2.17 "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis6.2.17
9367db1fcd05 mysql:8.0.18 "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
我换了台机器,可以用最新的了吧 ,确实可以,后就不用看了,直接访问控制台
没成功 Restarting (127) 25 seconds ago
education@education:/home/docker/minio$ sudo docker logs minio
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2分析:机器台老了,安装较低的minio版本
试试这个minio/minio:RELEASE.2023-04-28T18-11-17Z
在docker-compose.yml 修改
先要删除镜像
sudo docker-compose down
下面显示删掉了
education@education:/home/docker/minio$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f6075de374a kibana:8.15.0 "/bin/tini -- /usr/l…" 3 hours ago Up 3 hours 0.0.0.0:5601->5601/tcp, [::]:5601->5601/tcp kibana
e58089aba544 elasticsearch:8.15.0 "/bin/tini -- /usr/l…" 3 hours ago Up 3 hours 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 9300/tcp elasticsearch
b95c92ed88ac redis:6.2.17 "docker-entrypoint.s…" 4 hours ago Up 4 hours 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis6.2.17
ab1622668e32 mysql:8.0.18 "docker-entrypoint.s…" 7 hours ago Up 7 hours 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
继续执行
sudo docker-compose -f /home/docker/minio/docker-compose.yml up -d
education@education:/home/docker/minio$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3c22d776866 minio/minio:RELEASE.2023-04-28T18-11-17Z "/usr/bin/docker-ent…" 33 seconds ago Up 30 seconds (health: starting) 0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp minio
9f6075de374a kibana:8.15.0 "/bin/tini -- /usr/l…" 3 hours ago Up 3 hours 0.0.0.0:5601->5601/tcp, [::]:5601->5601/tcp kibana
e58089aba544 elasticsearch:8.15.0 "/bin/tini -- /usr/l…" 3 hours ago Up 3 hours 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 9300/tcp elasticsearch
b95c92ed88ac redis:6.2.17 "docker-entrypoint.s…" 4 hours ago Up 4 hours 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis6.2.17
ab1622668e32 mysql:8.0.18 "docker-entrypoint.s…" 7 hours ago Up 7 hours 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
5、访问控制台
192.168.1.14:9001
登陆用户名密码在docker-compose.yml里设置
- MINIO_ROOT_USER=minio # 登陆账号
- MINIO_ROOT_PASSWORD=12345678 # 密码
在控制台创建 Bucket。创建账户获取 Key 和 Secret
Access Key: 5F7xKr0e3OF2FvA0mpV1
Secret Key: 3fbBlWCHtxZ15aSjtq41q3v4RbNklMSFvHRiB1RD
在java源码里配置 ,该项目不需要配置,在页面进行配置
八、docker-compose 安装nacos
1、创建挂载目录
sudo mkdir -p /home/docker/nacos/log
sudo mkdir -p /home/docker/nacos/data
#授权
sudo chown -R x58:x58 /home/docker
3、导入数据库
https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gzhttps://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
解压后在
需要把SQL脚本导入数据库,SQL脚本位置:nacos/conf/mysql-schema.sql
数据库名为nacos_config
不能读取数据库权限
ERROR: Failed to create schema directory ‘clwy‘ (errno: 13 - Permission denied) 解决
education@education:/home/docker/nacos$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1969ec1e01ab nacos/nacos-server:v2.2.3 "bin/docker-startup.…" 18 minutes ago Up 7 seconds 0.0.0.0:8848->8848/tcp, [::]:8848->8848/tcp, 0.0.0.0:9848->9848/tcp, [::]:9848->9848/tcp nacos2.2.3
e3c22d776866 minio/minio:RELEASE.2023-04-28T18-11-17Z "/usr/bin/docker-ent…" 19 hours ago Up 19 hours (healthy) 0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp minio
9f6075de374a kibana:8.15.0 "/bin/tini -- /usr/l…" 22 hours ago Up 22 hours 0.0.0.0:5601->5601/tcp, [::]:5601->5601/tcp kibana
e58089aba544 elasticsearch:8.15.0 "/bin/tini -- /usr/l…" 22 hours ago Up 22 hours 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 9300/tcp elasticsearch
b95c92ed88ac redis:6.2.17 "docker-entrypoint.s…" 23 hours ago Up 23 hours 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis6.2.17
ab1622668e32 mysql:8.0.18 "docker-entrypoint.s…" 26 hours ago Up 26 hours 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
mysql是开启的
尝试进入容器并修改权限
sudo docker exec -it ab1622668e32 bash
chown -R mysql:mysql /var/lib/mysql
确实是这里的问题,没有错误掠过
2、配置 docker-compose.yml
sudo vi /home/docker/nacos/docker-compose.yml
## docker-compose config ## 检查当前目录docker-compose.yml文件配置是否正确
## docker-compose up -d ## -d 为后台启动
## docker-compose up -d --force-rereate ## 强制重新创建容器,修改挂载文件后使用该命令启动,谨慎使用,调试时可使用,使用此命令可能造成数据丢失
services:
nacos:
image: nacos/nacos-server:v2.2.3
container_name: nacos2.2.3
environment:
- TZ=Asia/Shanghai
- PREFER_HOST_MODE=hostname
- MODE=standalone
- JVM_XMX=1g
- JVM_XMS=1g
- TOMCAT_ACCESSLOG_ENABLED=false
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=192.168.1.14 #设置自己的ip地址,localhost不行的
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=123456
- MYSQL_SERVICE_DB_NAME=nacos_config
- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
- NACOS_AUTH_IDENTITY_KEY=education
- NACOS_AUTH_IDENTITY_VALUE=education
- NACOS_AUTH_TOKEN=SecretKey345901234567890126785678901234567890123901234567890123445678
volumes:
- /home/docker/nacos/log/:/home/nacos/logs
# - ./conf/custom.properties:/home/nacos/init.d/custom.properties
ports:
- 8848:8848
- 9848:9848
restart: always
3、启动容器
sudo docker-compose -f /home/docker/nacos/docker-compose.yml up -d
4、查看容器
x58@x58:/home/docker$ sudo docker ps
[sudo] password for x58:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41e256b0598a nacos/nacos-server:v2.2.3 "bin/docker-startup.…" 32 minutes ago Up 31 minutes 0.0.0.0:8848->8848/tcp, [::] :8848->8848/tcp, 0.0.0.0:9848->9848/tcp, [::]:9848->9848/tcp nacos2.2.3
aae7b971ed85 minio/minio:latest "/usr/bin/docker-ent…" 50 minutes ago Up 49 minutes (healthy) 0.0.0.0:9000-9001->9000-9001 /tcp, [::]:9000-9001->9000-9001/tcp minio
82671ac2cae2 kibana:8.15.0 "/bin/tini -- /usr/l…" About an hour ago Up About an hour 0.0.0.0:5601->5601/tcp, [::] :5601->5601/tcp kibana
2b06fc68bb13 elasticsearch:8.15.0 "/bin/tini -- /usr/l…" About an hour ago Up About an hour 0.0.0.0:9200->9200/tcp, [::] :9200->9200/tcp, 9300/tcp elasticsearch
3bc5ecc4492b redis:6.2.17 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:6379->6379/tcp, [::] :6379->6379/tcp redis6.2.17
9367db1fcd05 mysql:8.0.18 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, [::] :3306->3306/tcp, 33060/tcp
5、查看log
sudo docker logs nacos2.2.3
要在docker-compose.yml 同目录下执行,也可以加上目录
sudo docker-compose stop 停止不删除
sudo docker-compose down
6、验证安装
http://192.168.1.14:8848/nacos
导入nacos_config.zip ,需要的数据都在这里
7、配置管理
九、安装xxl-job
1、创建挂载目录
sudo mkdir -p /home/docker/xxl-job/log
#授权
sudo chown -R x58:x58 /home/docker
2、导入数据库
前面已经导入
也可以从网上下载
xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 - Gitee.comhttps://gitee.com/xuxueli0323/xxl-job/tree/2.3.0
xxl-job/doc/db/tables_xxl_job.sql
3、配置 docker-compose.yml
sudo vi /home/docker/xxl-job/docker-compose.yml
services:
xxl-job-admin:
restart: always
# docker 镜像
image: xuxueli/xxl-job-admin:2.3.1
# 容器名称
container_name: xxl-job-admin
volumes:
# 日志目录映射到主机目录
- /home/docker/xxl-job/log:/data/applogs
ports:
# 端口映射
- "8080:8080"
environment:
# 设置启动参数
PARAMS: '
--server.port=8080
--server.servlet.context-path=/xxl-job-admin
--spring.datasource.url=jdbc:mysql://192.168.1.14:3306/os_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
--spring.datasource.username=root
--spring.datasource.password=123456
--spring.mail.host=smtp.qq.com
--spring.mail.port=587
--spring.mail.username=999999@qq.com
--spring.mail.from=888888@qq.com
--spring.mail.password=*******************
--spring.mail.properties.mail.smtp.starttls.enable=true
--spring.mail.properties.mail.smtp.starttls.required=true
--xxl.job.accessToken=Lpoms_xxljob_default_token'
4、启动容器
sudo docker-compose -f /home/docker/xxl-job/docker-compose.yml up -d
x58@x58:/home/docker$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b8329b625c2 xuxueli/xxl-job-admin:2.3.1 "sh -c 'java -jar $J…" 25 seconds ago Up 20 seconds 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp xxl-job-admin
41e256b0598a nacos/nacos-server:v2.2.3 "bin/docker-startup.…" 51 minutes ago Up 51 minutes 0.0.0.0:8848->8848/tcp, [::]:8848->8848/tcp, 0.0.0.0:9848->9848/tcp, [::]:9848->9848/tcp nacos2.2.3
aae7b971ed85 minio/minio:latest "/usr/bin/docker-ent…" About an hour ago Up About an hour (healthy) 0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp minio
82671ac2cae2 kibana:8.15.0 "/bin/tini -- /usr/l…" About an hour ago Up About an hour 0.0.0.0:5601->5601/tcp, [::]:5601->5601/tcp kibana
2b06fc68bb13 elasticsearch:8.15.0 "/bin/tini -- /usr/l…" About an hour ago Up About an hour 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 9300/tcp elasticsearch
3bc5ecc4492b redis:6.2.17 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp redis6.2.17
9367db1fcd05 mysql:8.0.18 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp mysql8
5、测试
启动完成后通过:http:192.168.1.14:8080/xxl-job-admin访问
默认账号:admin
默认密码:123456
十、安装java8
下面的KKFileView打包要用到,我们提前安装了
sudo apt update -y
sudo apt-get install openjdk-8-jdk
education@education:~$ sudo apt-get install openjdk-8-jdk
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
openjdk-8-jdk is already the newest version (8u442-b06~us1-0ubuntu1~22.04).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded
education@education:~$ java -version
openjdk version "1.8.0_442"
OpenJDK Runtime Environment (build 1.8.0_442-8u442-b06~us1-0ubuntu1~22.04-b06)
OpenJDK 64-Bit Server VM (build 25.442-b06, mixed mode)
十一、安装maven
我在windows 下打包的,服务器没有编辑器,麻烦,所以maven在ubuntu上可以不装
1、建立安装目录
sudo mkdir -p /home/tools
#授权
sudo chown -R education:education /home/toolscd /home/tools
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
# 不能下载就在windows 下下载后上传,我就不能下载
tar -zxvf apache-maven-3.9.9-bin.tar.gz
mv apache-maven-3.9.9 /opt/maven
chown -R education:education /opt/maven
2、环境配置
sudo vi /etc/profile
# 在最后面加
# maven
export MAVEN_HOME=/opt/maven
export PATH=${MAVEN_HOME}/bin:${PATH}# 使配置立即生效
source /etc/profile
3、验证版本
education@education:/home/tools$ mvn -v
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /opt/maven
Java version: 1.8.0_442, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-133-generic", arch: "amd64", family: "unix"
4、配置阿里源
# 删除再重新添加,添加时格式有问题,大家重新弄一下
rm -f /opt/maven/conf/settings.xmlsudo vi /opt/maven/conf/settings.xml
添加<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>aliyun</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
十、安装KKFileView
下载源码、打包都在windows下进行
1、下载源码
F:\work目录下
git clone https://github.com/kekingcn/kkFileView.git
2、运行测试
运行这个入口文件
/server/src/main/java/cn/keking/ServerMain.java
.
2、进行项目打包
mvn clean package -DskipTests
3、创建目录
sudo mkdir -p /home/tools/KKFileView
#授权
sudo chown -R x58:x58 /home/tools
3、下载字体
# 下载字体
curl -O https://kkview.cn/resource/fonts.zip
# 安装zip软件
sudo apt install zip unzip
#解压 fonts.zip
sudo unzip fonts.zip
x58@x58:/home/tools/KKFileView$ ls
fonts.zip kkFileView-4.4.0.tar.gz zhFonts
# 新的目录zhFonts就是
# 移到ubnutu 字体库
sudo mv zhFonts/ /usr/share/fonts
# 安装工具包
sudo apt install xfonts-utils
# 重读并刷新字体
cd /usr/share/fonts
sudo mkfontscale
sudo mkfontdir
#查看已安装的中文字体
fc-list :lang=zh
# 重启
sudo reboot
4、上传kkFileView-4.4.0.tar.gz
windows下载地址迅雷下载比较快 ubnutu 可以wget下载,我的太慢
https://downloadarchive.documentfoundation.org/libreoffice/old/7.5.3.2/deb/x86_64/LibreOffice_7.5.3.2_Linux_x86-64_deb.tar.gz
同时上传LibreOffice_7.5.3.2_Linux_x86-64_deb.tar.gz到 /home/tools/KKFileView
cd /home/tools/KKFileView
sudo tar -zxvf LibreOffice_7.5.3.2_Linux_x86-64_deb.tar.gz
cd LibreOffice_7.5.3.2_Linux_x86-64_deb/DEBS
sudo apt-get install -y libxinerama1 libcairo2 libcups2 libx11-xcb1
sudo dpkg -i *.deb
# 解压缩
sudo tar -zxvf kkFileView-4.4.0.tar.gz
#修改配置
sudo vi /home/tools/KKFileView/kkFileView-4.4.0/config/application.properties
# cache.type = ${KK_CACHE_TYPE:jdk}
cache.type = ${KK_CACHE_TYPE:redis}
#redis连接,只有当cache.type = redis时才有用
spring.redisson.address = ${KK_SPRING_REDISSON_ADDRESS:127.0.0.1:6379}
spring.redisson.password = ${KK_SPRING_REDISSON_PASSWORD:123456}
# 进入 bin 目录
cd /home/tools/KKFileView/kkFileView-4.4.0/bin
# 启动
sudo ./startup.sh
x58@x58:/home/tools/KKFileView/kkFileView-4.4.0/bin$ ls
install.sh kkFileView-4.4.0.jar showlog.sh shutdown.sh startup.sh
x58@x58:/home/tools/KKFileView/kkFileView-4.4.0/bin$ sudo ./startup.sh
# 进入 bin 目录
cd /home/tools/KKFileView/kkFileView-4.4.0/bin
# 启动
sudo ./showlog.sh
发现错误:
Caused by: org.redisson.client.RedisException: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.. channel: [id: 0x5410adf9, L:/192.168.1.123:38544 - R:/192.168.1.123:6379] command: CommandData [promise=org.redisson.misc.RedissonPromise@3e0b96db[Not completed], command=(BLPOP), params=[convert-task, 0], codec=org.redisson.codec.JsonJacksonCodec@2a458dbb]
修改1:
vim打开redis.conf
快速定位 /stop-writes-on-bgsave-error 把es设置为no
sudo vi /home/docker/redis6/conf/redis/redis.conf
#进入redis
sudo docker exec -it 3bc5ecc4492b /bin/bash #用CONTAINER ID
redis-cli -h 127.0.0.1 -p 6379 -a 123456
# 重启失效
config set stop-writes-on-bgsave-error no
5、测试
-
上传 sql文件。上传查看
- 上传mk文件
- 上传jpg图片
- 上传pdf文
log也可打印