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

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.dtcms.com/a/361019.html

相关文章:

  • 开源模型应用落地-模型上下文协议(MCP)-为AI智能体打造的“万能转接头”-“mcp-use”(十二)
  • 2025年AI智能体开源技术栈全面解析:从基础框架到垂直应用
  • CSS 选择器完全指南:从基础到高级的全面解析
  • lesson51:CSS全攻略:从基础样式到前沿特性的实战指南
  • 面试常考css:三列布局实现方式
  • 前端必看:为什么同一段 CSS 在不同浏览器显示不一样?附解决方案和实战代码
  • LangChain开源LLM集成:从本地部署到自定义生成的低成本落地方案
  • 开源 React 脚手架推荐
  • LeetCode每日一题,2025-09-01
  • 视频提取文字用什么软件好?分享6款免费的视频转文字软件!
  • vizard-将长视频变成适合社交的短视频AI工具
  • (3dnr)多帧视频图像去噪 (二)
  • 统计学的“尝汤原理”:用生活案例彻底理解中心极限定理
  • Linux初始——Vim
  • 前端静态资源缓存与部署实践总结
  • 云手机为什么会受到广泛关注?
  • 【算法基础】链表
  • (Arxiv-2025)VACE:一体化视频创作与编辑
  • uniApp App 嵌入 H5 全流程:通信与跳转细节拆解
  • 【菜狗学聚类】聚类的一些评估指标——20250901
  • 交互体验升级:Three.js在设备孪生体中的实时数据响应方案
  • 飞牛nas修改crontab计划默认编辑器
  • RPA背后的核心技术有哪些?
  • 【论文阅读】Sparse4D v3:Advancing End-to-End 3D Detection and Tracking
  • 基于Hadoop与层次聚类技术的电子游戏销售分析系统的设计与实现
  • wpf之WrapPanel
  • 了解软件测试之软件测试技能
  • 第六章:健壮Go应用:工程实践与生产就绪之测试
  • Spring Bean生命周期的完全指南
  • 警告:OPENCV_FFMPEG_READ_ATTEMPTS (current value is 4096)