Docker秒级启动NextCloud个人网盘存储办公系统
·
Docker秒级启动NextCloud个人网盘存储办公系统
项目背景知识
系统需求
- 由于现有网盘费用较高且安全性得不到保证,需要在本地部署个人网盘存储系统。
- 为了便于使用,通过容器技术来实现,并部署在线office编辑工具,以实现个人云存储和移动办公。
软硬件环境清单
- 使用单台虚拟机实现
| 主机名 | IP地址 | 硬件 | 软件 |
|---|---|---|---|
| nextcloud | 192.168.88.203 | cpu:1颗2核 内 存:4GB HDD:20GB 网 络:NAT |
VmWare17 OpenEuler22.03sp4 docker26.1.4 mysql8.0.37 nextcloud30.0.6 OnlyOffice24.04 OnlyOffice connector9.6 |
任务清单
项目环境搭建
-
新建OpenEuler22.03 SP4 虚拟机
-
按照规划,最小化部署系统,关闭防火墙,禁用SELinux,确保能够联网。
docker设置
-
安装docker源及docker服务
-
配置docker镜像加速器
-
docker拉取镜像
-
配置并启动容器
配置数据库
- 新建nextcloud数据库及所需表
- 创建账户和密码设置权限
配置nextcloud
- 安装nextcloud
- 设置其选项
- 测试访问
配置onlyoffice
- 启动容器
- 下载onlyoffice连接器插件
- 配置
- 测试
配置内网穿透
项目实施
环境搭建
- 安装虚拟机及OpenEuler22.03 SP4系统 ,过程略
- 关闭安全软件:
[root@localhost ~]# sed -i '7s/enforcing/disabled/' /etc/selinux/config
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
- 修改主机名
[root@localhost ~]# hostnamectl set-hostname nextcloud
[root@localhost ~]# reboot
- 下载所需软件
[root@localhost ~]# yum install vim tar tree net-tools -y
安装docker
[root@nextcloud ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@nextcloud ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo # 更换为阿里开源镜像站源
[root@nextcloud ~]# sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
# 由于阿里开源中没有Euler系统版本,但其源自Centos则改为7即可
[root@nextcloud ~]# yum install docker-ce -y
配置docker源
# 注意:docker镜像加速器随时失效
[root@nextcloud ~]# vim /etc/docker/daemon.json # 添加如下
{
{
"registry-mirrors": [ "https://3945247e3e2b40e28eaff42cbdc21a72.mirror.swr.myhuaweicloud.com" ]
}
}
[root@nextcloud ~]# systemctl enable --now docker
[root@nextcloud ~]# docker version
[root@nextcloud ~]# docker info

拉取镜像
[root@nextcloud ~]# docker pull nextcloud
[root@nextcloud ~]# docker pull mysql:8.0.37
[root@nextcloud ~]# docker pull onlyoffice/documentserver
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nextcloud latest c10492ea7344 7 days ago 1.29GB
onlyoffice/documentserver latest 497c96127bfc 2 weeks ago 3.54GB
mysql 8.0.37 8279f68ee77d 8 months ago 567MB
数据库配置
[root@nextcloud ~]# docker run -p 3306:3306 --name mysql --restart="always" -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.37
[root@nextcloud ~]# docker ps | grep mysql
[root@nextcloud ~]# docker exec -it 4b97f………4522 /bin/bash
root@4b97fc214522:/# mysql -uroot -p
Enter password:
mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> FLUSH PRIVILEGES;
mysql> create database nextcloud;
mysql> exit
root@4b97fc214522:/# exit
nextcloud配置
[root@nextcloud ~]# docker run -d -v /root/nextcloud/html:/var/www/html -v /root/nextcloud/apps:/var/www/html/custom_apps -v /root/nextcloud/config:/var/www/html/config -v /root/nextcloud/nextcloud/data:/var/www/html/data -v /root/nextcloud/themes:/var/www/html/themes -p 80:80 --name nextcloud --restart="always" nextcloud
[root@server ~]# docker ps -a
# 浏览器输入本机ip进行配置:


onlyoffice
启动
[root@nextcloud ~]# docker run -i -t -d -p 9010:80 --restart=always \
-v /usr/docker/onlyoffice/log:/var/log/onlyoffice \
-v /usr/docker/onlyoffice/data:/var/www/onlyoffice/Data \
-v /usr/docker/onlyoffice/lib:/var/lib/onlyoffice \
-v /usr/docker/onlyoffice/db:/var/lib/postgresql onlyoffice/documentserver
[root@nextcloud ~]# docker ps
安装onlyoffice连接器
-
离线下载onyoffice插件:https://apps.nextcloud.com/apps/onlyoffice/releases?platform=30#30
-
查看当前nextcloud版本
[root@server /]# docker inspect nextcloud:latest | grep -i version
"DockerVersion": "",
"PHP_VERSION=8.2.27",
"NEXTCLOUD_VERSION=30.0.6" # nextcloud版本号
- 当前docker的nextcloud镜像是30版本,所以下载对应30版本插件

- 下载后,复制插件到宿主机并解压插件
[root@nextcloud ~]# cd /root/nextcloud/apps
# 使用xftp将下载插件压缩包上传
[root@nextcloud apps]# tar xf onlyoffice.tar.gz # 解压缩
- 启用插件


配置onlyoffice
- 在onlyoffice7.2版本之后,需要使用秘钥才能连接上,浏览器输入:http://ip:9010 , 查看获取密钥方法:

- 复制上图方框中代码,进入onlyoffice容器,获取密钥
[root@nextcloud apps]# sudo docker exec 2c25b922419e /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
feKJOJrHkVbuv9v6TLrJbYO9LjgxToLM
# 注意:每次重启后密钥会发生变化
- nextcloud中点击右上角用户图标 -> 点击管理设置-> 点击左侧侧边栏的onlyoffice,进行服务器配置,如图:

测试
- nextcloud->文件->新建word文件或excel文件




内网穿透
- 网址:https://www.cpolar.com/
# xftp上传cpolar
[root@nextcloud ~]# ls
anaconda-ks.cfg cpolar cpolar-stable-linux-amd64.zip nextcloud
[root@nextcloud ~]# unzip cpolar-stable-linux-amd64.zip
[root@nextcloud ~]# ./cpolar authtoken NDRiMDJhZTgtNDc2OC00………………MzdiMzI2ZDEx
[root@nextcloud ~]# ./cpolar http 80
# 切换到另一个终端
[root@nextcloud ~]# vim /root/nextcloud/config/config.php
…………
array (
0 => '192.168.88.203',
1 => 'cdb0a6f.r22.cpolar.top', # 添加域名信任
),
……


Dc2OC00………………MzdiMzI2ZDEx
[root@nextcloud ~]# ./cpolar http 80
切换到另一个终端
[root@nextcloud ~]# vim /root/nextcloud/config/config.php
…………
array (
0 => ‘192.168.88.203’,
1 => ‘cdb0a6f.r22.cpolar.top’, # 添加域名信任
),
……
[外链图片转存中...(img-rLs34Tmr-1745494304965)]
[外链图片转存中...(img-lHx87Rzn-1745494304965)]
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)