Docker秒级启动NextCloud个人网盘存储办公系统
1.1. 系统需求
- Docker是基于Go语言实现的云开源项目。
- Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、 部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能 够做到“一次镜像,处处运行”。
- Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成镜 像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现 了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
- 一句话定义docker:解决了运行环和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟
- 化技术。

- 容器:可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间 等)和运行在其中的应用程序。
- Docker 镜像(Image):就是一个只读的模板,镜像可以用来创建 Docker 容器,一个镜像可以创建很多 容器。它也相当于是一个root文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还 包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
- 仓库:集中存放镜像文件的地方,镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其他服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的 服务。
1.2.4. docker常用命令
docker version # 查看 docker 版本号等信息docker info # 查看 docker 版本号等信息docker images # 查看镜像docker search 镜像名 # 仓库中查看镜像docker pull 镜像名 # 拉取镜像docker run 镜像名 # 运行镜像docker rmi -f 镜像名 / 镜像 ID # 强制删除一个镜像docker ps -a # 查看容器docker run [OPTIONS] IMAGE [COMMAND] [ARG...] # 创建容器-d : 后台运行容器并返回容器 ID-it :启动交互式容器-p : 指定端口映射docker start 容器名 # 启动容器docker stop 容器名 # 停止容器docker restart 容器名 # 重启容器docker inspect 容器名 :latest | grep -i version # 查看容器 latest 具体版本号docker rm -f 容器 ID # 强制删除容器
1.3. Nextcloud

- 众所周知,国内很多网盘都关停了,现有的百度云还限速,甚至网盘里的文件还会被删除,网盘使用体验 差、安全性堪忧。
- 团队内部分享文件,用微信传输有大小限制,且只能通过公网上传下载;用 QQ 传输虽然可以通过内网传 输,但是有的文件是公司的机密,直接传输有泄露的风险,打包加密传输又太麻烦;并且不同部门对文档 的操作权限也应该是不同的。
- Nextcloud就是这么一套系统,既能够部署在局域网环境,又可以设置不同用户组对文档的访问权限,还可 以实现内网 + 公网访问
- Nextcloud是一套用于创建网络硬盘的客户端-服务器软件。其功能与Dropbox相近,但Nextcloud是自由 及开放原始码软件,每个人都可以在私人服务器上安装并执行它。在安全性,多客户端支持与多应用支持 上也非常具有优势。
- 网址:https://www.onlyoffice.com/zh/
- OnlyOffice是一款开源的办公套件,提供了文档编辑、电子表格和演示文稿等功能,支持在线协作和文件共 享。它通过网页浏览器即可访问和编辑各种文档,适合企业和个人用户在不同地点高效工作

- 一款免费的内网穿透软件
- 只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序、对接支 付宝网关等云端服务,提高您的编程效率
3.1. 项目环境搭建
- 新建OpenEuler22.03 SP4 虚拟机
- 按照规划,最小化部署系统,关闭防火墙,禁用SELinux,确保能够联网。
- 安装docker源及docker服务
- 配置docker镜像加速器
- docker拉取镜像
- 配置并启动容器
- 新建nextcloud数据库及所需表
- 创建账户和密码设置权限
- 安装nextcloud
- 设置其选项
- 测试访问
- 启动容器
- 下载onlyoffice连接器插件
- 配置
- 测试
3.6. 配置内网穿透
4.1. 环境搭建
- 安装虚拟机及OpenEuler22.03 SP4系统 ,过程略

- 关闭安全软件
sed -i '7s/enforcing/disabled/' /etc/selinux/configsystemctl stop firewalldsystemctl disable firewalld
修改主机名
hostnamectl set-hostname nextcloudreboot

下载需要的软件
yum install vim tar tree net-tools -y

安装docker
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
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 即可yum install docker-ce -y


配置docker源(找自己的华为镜像加速器)
vim /etc/docker/daemon.json
{ "registry-mirrors": [ "https://5834b5be590a4327bf3ca51c04ad64ec.mirror.swr.myhuaweicloud.com" ] }{"exec-opts" : [ "native.cgroupdriver=systemd" ],"registry-mirrors": [ "https://5834b5be590a4327bf3ca51c04ad64ec.mirror.swr.myhuaweicloud.com" ,"https://docker.1ms.run" ,"https://docker.1panel.live/"]}

启动docker
systemctl enable --now docker
查看docker版本
docker --version

docker info

拉取镜像
docker pull nextcloud
docker pull mysql:8.0.37
docker pull onlyoffice/documentserver

查看docker拉取
docker images

数据库配置
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.37docker ps | grep mysqldocker exec -it 28027aa1eded /bin/bash
mysql -uroot -pmysql> 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> exitroot@4b97fc214522:/ # exit

nextclou配置
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" nextclouddocker ps#查看容器# 浏览器输入本机 ip 进行配置:

onlyoffice
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/documentserverdocker ps

安装onlyoffice连接器
docker inspect nextcloud:latest | grep -i version

下载对应的版本号

下载后,复制插件到宿主机并解压插件
cd /root/nextcloud/apps# 使用 xftp 将下载插件压缩包上传

tar xf onlyoffice.tar.gz # 解压缩
启用插件onlyoffice


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

复制代码获取秘钥
sudo docker exec e6dba7428a81 /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

秘钥:dmC1SnaG4GrpV0nMU8f8M93Dw98dL58u
测试:
nextcloud->文件->新建word文件或excel文件


内网穿透
网址:https://www.cpolar.com/

wget https://www.cpolar.com/static/downloads/releases/3.3.18/cpolar-stable-linux-amd64.zip?_gl=1*1jl2h5f*_ga*OTQ5NjA2MTMxLjE3NDQ3OTcwNTU.*_ga_WF16DPKZZ1*MTc0NDc5NzA1NS4xLjEuMTc0NDc5NzIxMC40Ni4wLjA.
--2025-04-16 17:54:51-- https://www.cpolar.com/static/downloads/releases/3.3.18/cpolar-stable-linux-amd64.zip?_gl=1*1jl2h5f*_ga*OTQ5NjA2MTMxLjE3NDQ3OTcwNTU.*_ga_WF16DPKZZ1*MTc0NDc5NzA1NS4xLjEuMTc0NDc5NzIxMC40Ni4wLjA.

放到/目录下
cd /

连接账户:
./cpolar authtoken MGRhZDA2YWQtNjUzYS00NGM2LWFiMDEtMDY2NTZjODc2Yjcx

(添加nextcloud域名)
./cpolar http 80

切换到另一个终端,添加域名信任
vim /root/nextcloud/config/config.php
通过域名在浏览器登录
http://76a94ea2.r5.cpolar.top/login

最后实现内网穿透。
更多推荐
所有评论(0)