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进行配置:

image-20250221111526785

image-20250221111735235

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连接器
[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版本插件

image-20250220163054668

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

image-20250220165005502

image-20250221113001079

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

image-20250221113136016

  • 复制上图方框中代码,进入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,进行服务器配置,如图:

image-20250221114132997

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

image-20250221114516029

image-20250221114546185

image-20250221114712384

image-20250221114923728

内网穿透

  • 网址: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',   # 添加域名信任
  ),
……

image-20250221120454744

image-20250221120726988

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)]





















Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐