当前位置: 首页 > ai >正文

Ubuntu 服务器实战:Docker 部署 Nextcloud+ZeroTier,打造可远程访问的个人云

本次部署基于 Ubuntu 系统(桌面版 / Server 版通用,核心操作一致),硬件配置参考如下,低配置主机可顺畅运行:

ubuntu服务器配置如下

硬件类型具体型号/参数
CPUIntel Core i3-6100T
内存条8GB(DDR4 2400mhz)
硬盘东芝(Toshiba)机械硬盘 500GB

Nextcloud 和 ZeroTier 部署方案

整套方案通过 Docker 实现 Nextcloud 容器化部署,搭配 ZeroTier 构建虚拟局域网,无需公网 IP 即可实现远程访问,步骤清晰且隔离性强。

1. 安装 Docker 和 Docker Compose

首先,我们需要在 Ubuntu 系统上安装 Docker 和 Docker Compose。

  1. 更新系统并安装必要工具

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y curl ufw vim
    
  2. 安装 Docker
    官方的一键安装脚本非常方便:

    curl -fsSL https://get.docker.com | sh
    
  3. 将当前用户加入 docker 组(避免每次用 sudo):

    sudo usermod -aG docker $USER
    newgrp docker # 刷新用户组,或注销后重新登录生效
    
  4. 安装 Docker Compose

    sudo curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  5. Docke配置镜像源

     sudo  vim /etc/docker/daemon.json#daemon.json如下所示
{
"registry-mirrors": [
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.ketches.cn"
]
}
  1. 验证安装
    docker --version
    docker-compose --version
    

2. 部署 Nextcloud (Docker Compose方式)

使用 Docker Compose 可以通过一个配置文件管理所有服务,非常清晰方便。

  1. 创建一个专用目录(例如 nextcloud)并进入:

    mkdir ~/nextcloud && cd ~/nextcloud
    
  2. 创建 docker-compose.yml 文件
    使用 vim 或其他编辑器创建文件:

    sudo vim docker-compose.yml
    

    将以下内容粘贴到文件中,然后保存退出( 输入 :wq, 回车)。

    version: '3'services:nextcloud:image: nextcloud:latestcontainer_name: nextcloudrestart: unless-stoppedports:- "80:80"- "443:443"environment:- MYSQL_HOST=nextcloud-db- MYSQL_DATABASE=nextcloud- MYSQL_USER=nextcloud- MYSQL_PASSWORD=your_strong_db_password_here # 请修改为一个强密码!volumes:- nextcloud_data:/var/www/html- ./apps:/var/www/html/custom_apps- ./config:/var/www/html/config- ./data:/var/www/html/datadepends_on:- nextcloud-dbnextcloud-db:image: mariadb:10.6container_name: nextcloud-dbrestart: unless-stoppedenvironment:- MYSQL_ROOT_PASSWORD=your_strong_root_db_password_here # 请修改为一个强密码!- MYSQL_DATABASE=nextcloud- MYSQL_USER=nextcloud- MYSQL_PASSWORD=your_strong_db_password_here # 此处的密码要与上面nextcloud服务中的MYSQL_PASSWORD一致!volumes:- db_data:/var/lib/mysqlcommand: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFFvolumes:nextcloud_data:db_data:
    

    重要提示

    • 务必修改 MYSQL_PASSWORDMYSQL_ROOT_PASSWORD 的值,并使用强密码。
    • 本例为了简单,直接将Nextcloud的80和443端口映射到了主机。如果你的主机有其他服务占用这些端口,需要修改前面的主机端口(例如 8080:80)。
  3. 启动 Nextcloud 服务
    docker-compose.yml 文件所在目录运行:

    docker-compose up -d
    

    -d 表示在后台运行。Docker 会自动下载镜像并启动容器。

  4. 查看启动日志(可选):

    docker-compose logs -f
    
  5. 初步访问
    启动完成后,在你同一局域网下的浏览器中,访问 http://你的Ubuntu主机IP(例如 http://192.168.1.100)。你应该能看到 Nextcloud 的初始化页面,创建管理员账户并配置数据库时,数据库用户、密码、数据库名等就填写你在 docker-compose.yml 里设置的那些值。

3. 安装和配置 ZeroTier

Nextcloud 在本地局域网部署好后,我们用 ZeroTier 来实现远程访问。

  1. 安装 ZeroTier

    curl -s https://install.zerotier.com | sudo bash
    
  2. 注册 ZeroTier 并创建网络

    • 访问 ZeroTier 官网 注册一个账号。
    • 登录后,在 “Networks” 页面,点击 “Create a Network”,这会生成一个新的网络。记住生成的 Network ID(一串16位的字符)。
  3. 将你的小主机加入网络

    sudo zerotier-cli join <你的Network ID>
    

    例如:sudo zerotier-cli join 1a2b3c4d5e6f7890

  4. 在官网授权设备

    • 回到 ZeroTier 官网的控制面板,找到你创建的网络。
    • 在 “Members” 选项卡下,你应该能看到你的小主机(通过Node ID识别),勾选前面那个 “Auth?” 复选框,授权它加入网络。稍等片刻,它会获得一个虚拟局域网IP(例如 192.168.192.100)。
  5. 在其他设备上安装并加入 ZeroTier

    • 在你需要访问 Nextcloud 的手机电脑上也安装 ZeroTier 客户端,并加入同一个 Network ID。
    • 同样地,回到官网控制面板,授权这些设备。
    • 现在,你的所有设备都在同一个虚拟局域网里了。
  6. 通过 ZeroTier 访问 Nextcloud

    • 在你手机或电脑的浏览器中,直接输入小主机的 ZeroTier 虚拟IP地址,例如 http://192.168.192.100,就可以远程访问到你的 Nextcloud 了。

4. 可选优化与调整

  • 数据目录迁移:如果你希望 Nextcloud 的数据存储在机械硬盘上,可以在 docker-compose.ymlvolumes 部分,将 nextcloud_datadb_data 的映射路径修改到机械硬盘的挂载点,例如 /mnt/your_hdd/nextcloud_data:/var/www/html
  • 防火墙设置:如果开启了 UFW(防火墙),记得放行所需端口:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw allow 9993/udp # ZeroTier 的通信端口
    

常用管理和故障排除命令

  • 查看容器状态docker-compose ps
  • 停止服务docker-compose down (在当前目录下运行,会停止并删除容器,但保留数据卷)
  • 重启服务docker-compose restart
  • 查看日志docker-compose logs -f nextcloud (查看Nextcloud容器的日志)
  • 进入容器内部(用于调试):docker exec -it nextcloud bash

这套组合方案(Docker + Nextcloud + ZeroTier)的优点是高度集成、隔离性好、管理方便,并且通过 ZeroTier 实现了安全的点对点直连。

测试图如下


手机端测试运行nextcloud
如果部署过程中遇到任何问题,欢迎在评论区留言讨论~

http://www.xdnf.cn/news/19460.html

相关文章:

  • 学习 Android (十八) 学习 OpenCV (三)
  • OpenHarmony 分布式感知中枢深度拆解:MSDP 框架从 0 到 1 的实战指南
  • 餐饮外卖同城配送酒水寄存餐品加价换购促销小程序APP
  • Windows 安装配置解压版MongoDb
  • TFT屏幕:STM32硬件SPI+DMA+队列自动传输
  • 【RelayMQ】基于 Java 实现轻量级消息队列(五)
  • 2025 最新Vue前端面试题目 (9月最新)
  • AI 重构医疗诊断:影像识别准确率突破 98%,基层医院如何借技术缩小诊疗差距?
  • 设备服务管理上报方案
  • 两轮车车机 OS 演进路线深度解析
  • libmodbus源码分析
  • 【前端】《手把手带你入门前端》前端的一整套从开发到打包流程, 这篇文章都会教会你;什么是vue,Ajax,Nginx,前端三大件?
  • 差角函数差角矩阵位置编码
  • 无需服务器也能建网站:Docsify+cpolar让技术文档分享像写笔记一样简单
  • 手机版碰一碰发视频源码搭建,技术实现与实操指南
  • 鸿蒙开发进阶(HarmonyOS)
  • Unity中多线程与高并发下的单例模式
  • MobaXterm介绍
  • Git将多笔patch合并成一笔
  • 苹果 Safari 地址栏可能被超大光标视觉欺骗
  • HarvardX TinyML小笔记2(番外3:数据工程)(TODO)
  • 杰理ac791无法控制io脚原因
  • Coze源码分析-工作空间-项目开发-后端源码
  • 传输层TCP 与 安全层SSL/TLS
  • shell之扩展
  • 接口自动化测试之设置断言思路
  • 什么是MIPS架构?RISC-V架构?有什么区别?【超详细初学者教程】
  • 深入Linux内核:IPC资源管理揭秘
  • 从 “对话” 到 “共创”:生成式 AI 如何重塑内容创作全流程,普通人也能掌握的高效工具指南
  • MongoDB 备份与恢复:mongodump 和 mongorestore 实战