Docker 实战:在 Windows 上搭建完整自托管服务栈(含 4 服务详细部署)

0 阅读8分钟

Docker 实战:在 Windows 上搭建完整自托管服务栈(含 4 服务详细部署)

作者:布偶宅 | 预计阅读时长:15 分钟 | 难度:基础


📥 为什么选择自托管服务?

你是否厌倦了:

  • 每月支付 SaaS 订阅费用?
  • 担心数据隐私泄露?
  • 受限于免费服务的功能限制?
  • 想要完全掌控自己的数据?

自托管服务(Self-hosted)让你将数据和隐私掌握在自己手中,无需依赖第三方。

自托管的优势

优势说明
🔒 数据完全私有不上传到第三方服务器,数据安全可控
💰 无订阅费用一次部署,长期使用,零月费
🎨 高度可定制功能按需配置,界面自定义
🤝 完全掌控不受平台限制定制,自主升级

🛠️ 准备工作

1. 安装 Docker Desktop

访问 www.docker.com/products/do… 下载并安装

安装完成后重启电脑,打开 Docker Desktop 等待启动完成

验证安装

docker --version
docker run hello-world

2. 解决常见配置问题

如果遇到 docker-credential-desktop 错误:

notepad ~/.docker/config.json
# 移除或注释掉 "credsStore": "desktop",

3. 创建数据目录

mkdir C:\filebrowser-data
mkdir C:\memos-data
mkdir C:\n8n-data
mkdir C:\homarr-configs
mkdir C:\homarr-data

📁 服务 1:Filebrowser - 你的私有网盘

为什么选择 Filebrowser?

Filebrowser 是一个 Web 版文件管理器,适合:

  • 局域网文件共享
  • 远程文件管理
  • 个人/团队文件库
  • 替代 FTP/SMB

技术栈:Go + SQLite | 资源占用:低(约50MB 内存)

部署命令

docker run -d `
  --name filebrowser `
  -p 8080:80 `
  -v C:/filebrowser-data:/srv `
  --restart unless-stopped `
  filebrowser/filebrowser:s6

初始化与登录

# 初始化数据库
docker exec filebrowser /bin/filebrowser config init

# 创建管理员账号
docker exec filebrowser /bin/filebrowser users add admin admin12345678 --perm.admin

# 修复文件权限
docker exec filebrowser chown 911:911 /database/filebrowser.db

# 重启服务
docker restart filebrowser

访问服务http://localhost:8080 登录信息

  • 用户名:admin
  • 密码:admin12345678

核心功能

  • 文件上传:拖拽上传或点击上传按钮
  • 文件下载:右键菜单或直接下载
  • 在线编辑:支持 Markdown、文本等格式
  • 用户管理:设置页面添加新用户
  • 权限控制:文件夹级别权限设置


📝 服务 2:Memos - 极简知识库

为什么选择 Memos?

Memos 是一个轻量级的知识管理工具,类似 Twitter + Notion:

  • 快闪笔记记录
  • 知识沉淀和整理
  • 个人灵感捕捉
  • 替代 Notion/印象笔记

技术栈:Go + SQLite | 资源占用:中(约100MB 内存)

部署命令

docker run -d `
  --name memos `
  -p 5230:5230 `
  -v C:/memos-data:/var/opt/memos `
  --restart unless-stopped `
  ghcr.io/usememos/memos:latest

访问服务http://localhost:5230

首次设置

  1. 点击”创建账号”
  2. 填写邮箱(任意)、显示名称、密码
  3. 点击注册

核心功能

  • 快捷键 N:新建笔记
  • 快捷键 /:搜索笔记
  • #标签名:创建标签

标签使用示例

  • #工作 - 工作相关笔记
  • #学习 - 学习记录
  • #技术 - 技术文章

🔌 服务 3:n8n - 可视化自动化平台

为什么选择 n8n?

n8n 是一个可视化工作流自动化平台,类似 Zapier 但可自托管:

  • 业务流程自动化
  • 数据同步和转换
  • 消息通知和推送
  • API 集成

技术栈:Node.js + SQLite | 资源占用:高(约500MB 内存)

部署命令

docker run -d `
  --name n8n `
  -p 5678:5678 `
  -v C:/n8n-data:/home/node/.n8n `
  --restart unless-stopped `
  n8nio/n8n

访问服务http://localhost:5678

首次设置

  1. 填写管理员邮箱、显示名称、密码
  2. 点击”创建账号”

创建第一个工作流(示例:定时发送通知)

  1. 点击右上角+新建工作流
  2. 拖拽”Schedule Trigger”节点到画布
  3. 设置触发时间(如:Days 1 9am 0 每天上午9 点)
  4. 搜索 ”Send email”,拖入画布
  5. 连接两个节点
  6. 配置 Send email 节点的smtp服务器,收件人和内容等
  7. 点击下方”Execute workflow”
  8. 保存工作流

常用节点

  • Manual Trigger:手动触发
  • Schedule Trigger:定时触发
  • HTTP Request:调用 API
  • Edit Fields (Set):设置数据字段
  • Code:自定义代码逻辑
  • Send Email:发送邮件
  • Webhook:接收外部请求

🏠 服务 4:Homarr - 个人仪表盘

为什么选择 Homarr?

Homarr 是一个精致的个人仪表盘,可集中管理所有自托管服务:

  • 服务卡片管理
  • 状态监控
  • 天气小部件
  • 全局搜索

技术栈:React + TypeScript | 资源占用:低(约100MB 内存)

部署命令

docker run -d `
  --name homarr `
  -p 7575:7575 `
  -v C:/homarr-configs:/app/data/configs `
  -v C:/homarr-data:/data `
  --restart unless-stopped `
  ghcr.io/ajnart/homarr:latest

访问服务http://localhost:7575

首次设置

  1. 创建管理员账号
  2. 点击”添加应用”
  3. 配置服务卡片(名称、URL、图标)
  4. 添加更多服务(Memos、n8n 等)


🚀 一键部署所有服务

将以下内容保存为 deploy-all.ps1:

# 创建数据目录
mkdir C:\filebrowser-data, C:\memos-data, C:\n8n-data, C:\homarr-configs, C:\homarr-data

# 部署 Filebrowser
Write-Host "正在部署 Filebrowser..."
docker run -d --name filebrowser -p 8080:80 -v C:/filebrowser-data:/srv --restart unless-stopped filebrowser/filebrowser:s6

# 部署 Memos
Write-Host "正在部署 Memos..."
docker run -d --name memos -p 5230:5230 -v C:/memos-data:/var/opt/memos --restart unless-stopped ghcr.io/usememos/memos:latest

# 部署 n8n
Write-Host "正在部署 n8n..."
docker run -d --name n8n -p 5678:5678 -v C:/n8n-data:/home/node/.n8n --restart unless-stopped n8nio/n8n

# 部署 Homarr
Write-Host "正在部署 Homarr..."
docker run -d --name homarr -p 7575:7575 -v C:/homarr-configs:/app/data/configs -v C:/homarr-data:/data --restart unless-stopped ghcr.io/ajnart/homarr:latest

# 初始化 Filebrowser
Write-Host "正在配置 Filebrowser..."
Start-Sleep -Seconds 5
docker exec filebrowser /bin/filebrowser config init
docker exec filebrowser /bin/filebrowser users add admin admin12345678 --perm.admin
docker exec filebrowser chown 911:911 /database/filebrowser.db
docker restart filebrowser

Write-Host ""
Write-Host "所有服务已部署完成!"
Write-Host ""
Write-Host "Filebrowser: http://localhost:8080 (admin/admin12345678)"
Write-Host "Memos: http://localhost:5230 (首次访问注册)"
Write-Host "n8n: http://localhost:5678 (首次访问注册)"
Write-Host "Homarr: http://localhost:7575 (首次访问注册)"

运行脚本:.\deploy-all.ps1


🔧 常用管理命令

# 查看运行状态
docker ps

# 停止所有服务
docker stop filebrowser memos n8n homarr

# 启动所有服务
docker start filebrowser memos n8n homarr

# 查看服务日志
docker logs filebrowser
docker logs memos
docker logs n8n
docker logs homarr

📋 常见问题排查

问题 1:端口被占用

错误信息:bind: address already in use

解决方法

netstat -ano | findstr "8080"
taskkill /PID <进程ID> /F

问题 2:Filebrowser 登录失败

错误信息:403 Forbidden 或密码错误

解决方法

docker exec filebrowser rm -f /database/filebrowser.db
docker exec filebrowser /bin/filebrowser config init
docker exec filebrowser /bin/filebrowser users add admin admin12345678 --perm.admin
docker exec filebrowser chown 911:911 /database/filebrowser.db
docker restart filebrowser

问题 3:容器启动失败

检查 Docker Desktop 是否运行

Get-Process | Where-Object {$_.ProcessName -like "*docker*"}

问题 4:无法访问服务

检查清单

  • Docker Desktop 是否正在运行
  • 容器是否已启动(docker ps)
  • 端口是否正确(8080/5230/5678/7575)
  • 防火墙是否允许端口
  • 浏览器是否能访问 localhost

📊 服务对比参考

服务端口内存占用用途适合人群
Filebrowser8080低(约50MB)文件管理需要远程文件访问的用户
Memos5230中(约100MB)知识库笔记爱好者、极简主义者
n8n5678高(约500MB)自动化需要工作流自动化的用户
Homarr7575低(约100MB)仪表盘多服务用户、极客

🎯 总结

通过本教程,你已经成功部署了 4 个实用的自托管服务:

服务状态地址
Filebrowser已部署http://localhost:8080
Memos已部署http://localhost:5230
n8n已部署http://localhost:5678
Homarr已部署http://localhost:7575

下一步建议

  1. 将 Homarr 设为浏览器主页
  2. 创建 Memos 笔记记录使用技巧
  3. 用 n8n 创建自动化工作流
  4. 尝试扩展更多自托管服务

📚 相关资源


💼 我提供的服务

如果你不想自己部署,或者需要更专业的解决方案,我可以为你提供以下服务:

自托管服务部署

  • Filebrowser 文件管理系统部署
  • Memos 知识库部署和配置
  • n8n 自动化平台部署和工作流开发
  • Homarr 个人仪表盘搭建
  • 其他自托管服务的部署(如 Nextcloud、Vaultwarden 等)
  • 多服务集成配置

系统优化

  • Windows 系统深度优化和清理
  • 性能调优和资源优化
  • Docker 环境搭建和配置
  • 系统安全加固建议

数据采集与自动化

  • EasySpider 可视化爬虫配置
  • 自定义数据采集方案设计
  • n8n 自动化工作流开发
  • 定时任务和数据同步

运维支持

  • 服务监控和故障排查
  • 数据备份和恢复方案
  • 性能调优和扩容建议
  • 运维脚本开发

技术咨询

  • 自托管架构设计
  • 技术选型建议
  • 最佳实践指导
  • 问题排查和解决方案

💬 需要帮助?

如果部署过程中遇到问题,或者需要定制化服务,欢迎联系我:

联系方式


准备好开始你的自托管之旅了吗?