# 基于Docker搭建NextCloud+onlyoffice打造个人专属或团队共享的私有同步网盘

By [PIAO](https://paragraph.com/@piao) · 2023-12-16

---

**一、前言**
========

几年前还百家争锋的国内网盘市场，如今只剩下百度网盘一枝独秀，但是100kb/s限速让人寒心。虽然还有一些稳定的国外网盘，如 OneDrive、DropBox、Google Drive 等，但国内访问并不友好。

**二、介绍**
========

Nextcloud 是一个免费专业的私有云存储网盘「开源」项目，可以让你简单快速地在个人/公司电脑、服务器甚至是树莓派等设备上架设一套属于自己或团队专属的云同步网盘，从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。 Nextcloud 跨平台支持 Windows、Mac、Android、iOS、Linux 等平台，而且还提供了「网页版」以及 WebDAV 形式访问，因此你几乎可以在任何电脑、手机设备上都能轻松获取和访问你的文件文档。

**三、优势与不足**
===========

优势： 私密，自己全权管理所有文件； 稳定，不存在服务商关闭网盘服务的问题； 高速，直链下载，不限速； 功能丰富，可安装插件实现各种云端功能。

不足： 需要自己维护备份； 存储容量多为几十G。

**四、使用Docker Compose部署NextCloud**
=================================

借助Docker Compose，您可以使用 YAML 文件 来配置所有应用程序服务，这样您就可以轻松地使用单个命令启动它们。在继续之前，请确保您的系统上安装了Docker （Linux安装Docker教程）。

创建挂载目录

    mkdir -p /data/nextcloud/data
    

创建docker-compose.yml

    vi /data/nextcloud/docker-compose.yml
    

输入i进入编辑模式

情况1：使用外部已有数据库 添加以下内容：

    version: '2'
    services:
      app:
        container_name: "nextcloud"
        image: nextcloud:latest
        restart: always
        ports:
          - 80:80
        volumes:
          - ./data:/var/www/html
        environment:
          - MYSQL_PASSWORD=外部数据库密码
          - MYSQL_DATABASE=外部数据库名称
          - MYSQL_USER=外部数据库登录名
          - MYSQL_HOST=外部数据库主机IP
    

按Esc退出编辑模式，输入:wq 保存并退出

情况2：数据库与NextCloud一并安装使用 添加以下内容：

    version: '2'
    services:
      db:
        container_name: "mariadb"
        image: mariadb:10.5
        restart: always
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
        volumes:
          - /data/nextcloud/mariadb/mysql:/var/lib/mysql
        environment:
          - MYSQL_ROOT_PASSWORD=
          - MYSQL_PASSWORD=
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
      app:
        container_name: "nextcloud"
        image: nextcloud
        restart: always
        ports:
          - 80:80
        volumes:
          - ./data:/var/www/html
        links:
          - db
        environment:
          - MYSQL_PASSWORD=
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
          - MYSQL_HOST=db
    

按Esc退出编辑模式，输入:wq 保存并退出;进入目录

    cd /data/nextcloud
    

启动容器

    docker-compose up -d
    

**五、使用NextCloud**
-----------------

**1、访问服务** [http://192.168.50.101:80](http://192.168.50.101/) **2、创建管理员账号密码**

![初始化完成，进入首页](https://storage.googleapis.com/papyrus_images/13c12583d5db3455c10951d9bd606c5a66cdc6ca5446f0651b64b299cb9b3cbb.png)

初始化完成，进入首页

**3、基本设置** 设置=》个人信息=》语言 设置为 “简体中文”

![](https://storage.googleapis.com/papyrus_images/864baabc6ec497e3927685cfaabf4631adc954e4fdf76cff4fc9b4aaf23e9bef.png)

4、下载客户端 IOS Android Windows MacOS 5、配置客户端

*   进入客户端
    
*   配置Nextcloud服务地址
    
*   输入用户名，密码登录即可
    
    六、安装Onlyoffice 拉取Onlyoffice镜像
    -----------------------------
    
    拉取镜像
    
        docker pull onlyoffice/documentserver
        
    
    创建docker-compose.yml
    
        vim /data/onlyoffice/docker-compose.yml
        
    
    输入i进入编辑模式 添加以下内容：
    
        version: '2'
        services:
          app:
            container_name: "onlyoffice"
            image: onlyoffice/documentserver:latest
            restart: always
            ports:
              - 9001:80
            volumes:
              - ./data:/var/www/
        
    
    按Esc退出编辑模式，输入:wq 保存并退出
    
    进入目录;启动容器
    
        cd /data/onlyoffice && docker-compose up -d
        
    

![打开浏览器输入192.168.115.129:9001](https://storage.googleapis.com/papyrus_images/0042729bac23e456399ef4f848132ee6b7baa05cde131acafb2aca6996e13321.png)

打开浏览器输入192.168.115.129:9001

![找到“office&text”，下载并启用“ONLYOFFICE”](https://storage.googleapis.com/papyrus_images/aae59bf105a8951c57a2c39bb938eef04f9cd6522074fbb258385119a25e8fea.png)

找到“office&text”，下载并启用“ONLYOFFICE”

查看docker中local.json,复制token

    cd /etc/onlyoffice/documentserver && cat local.json
    

![打开设置，ONLYOFFICE，配置地址和密钥，保存](https://storage.googleapis.com/papyrus_images/58068b306e9420e9b91c8d3879b4ad60653975ecd527f08b28b87c3d2f72a9f1.png)

打开设置，ONLYOFFICE，配置地址和密钥，保存

![打开一个文件测试](https://storage.googleapis.com/papyrus_images/fc2a6bc1071e97f871c97f7583c0d204cd06d064fa14f415991c6a374743364f.png)

打开一个文件测试

---

*Originally published on [PIAO](https://paragraph.com/@piao/docker-nextcloud-onlyoffice)*
