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
首次设置
- 点击”创建账号”
- 填写邮箱(任意)、显示名称、密码
- 点击注册
核心功能
- 快捷键 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
首次设置
- 填写管理员邮箱、显示名称、密码
- 点击”创建账号”
创建第一个工作流(示例:定时发送通知)
- 点击右上角+新建工作流
- 拖拽”Schedule Trigger”节点到画布
- 设置触发时间(如:Days 1 9am 0 每天上午9 点)
- 搜索 ”Send email”,拖入画布
- 连接两个节点
- 配置 Send email 节点的smtp服务器,收件人和内容等
- 点击下方”Execute workflow”
- 保存工作流
常用节点
- 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
首次设置
- 创建管理员账号
- 点击”添加应用”
- 配置服务卡片(名称、URL、图标)
- 添加更多服务(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
📊 服务对比参考
| 服务 | 端口 | 内存占用 | 用途 | 适合人群 |
|---|---|---|---|---|
| Filebrowser | 8080 | 低(约50MB) | 文件管理 | 需要远程文件访问的用户 |
| Memos | 5230 | 中(约100MB) | 知识库 | 笔记爱好者、极简主义者 |
| n8n | 5678 | 高(约500MB) | 自动化 | 需要工作流自动化的用户 |
| Homarr | 7575 | 低(约100MB) | 仪表盘 | 多服务用户、极客 |
🎯 总结
通过本教程,你已经成功部署了 4 个实用的自托管服务:
| 服务 | 状态 | 地址 |
|---|---|---|
| Filebrowser | 已部署 | http://localhost:8080 |
| Memos | 已部署 | http://localhost:5230 |
| n8n | 已部署 | http://localhost:5678 |
| Homarr | 已部署 | http://localhost:7575 |
下一步建议:
- 将 Homarr 设为浏览器主页
- 创建 Memos 笔记记录使用技巧
- 用 n8n 创建自动化工作流
- 尝试扩展更多自托管服务
📚 相关资源
- Docker 官方文档:docs.docker.com/
- Filebrowser:github.com/filebrowser…
- Memos:usememos.com/
- n8n:docs.n8n.io/
- Homarr:github.com/ajnart/homa…
- Awesome Self-hosted:github.com/awesome-sel…
💼 我提供的服务
如果你不想自己部署,或者需要更专业的解决方案,我可以为你提供以下服务:
自托管服务部署
- Filebrowser 文件管理系统部署
- Memos 知识库部署和配置
- n8n 自动化平台部署和工作流开发
- Homarr 个人仪表盘搭建
- 其他自托管服务的部署(如 Nextcloud、Vaultwarden 等)
- 多服务集成配置
系统优化
- Windows 系统深度优化和清理
- 性能调优和资源优化
- Docker 环境搭建和配置
- 系统安全加固建议
数据采集与自动化
- EasySpider 可视化爬虫配置
- 自定义数据采集方案设计
- n8n 自动化工作流开发
- 定时任务和数据同步
运维支持
- 服务监控和故障排查
- 数据备份和恢复方案
- 性能调优和扩容建议
- 运维脚本开发
技术咨询
- 自托管架构设计
- 技术选型建议
- 最佳实践指导
- 问题排查和解决方案
💬 需要帮助?
如果部署过程中遇到问题,或者需要定制化服务,欢迎联系我:
联系方式:
- 微信:ys100200300ys
- 邮箱:[y@ypp1.com]
准备好开始你的自托管之旅了吗?