通过 Docker 容器化部署 n8n,实现环境隔离、数据持久化管理,快速搭建个人/团队自动化工作流平台。

一、前置准备
1.1 了解 n8n 与 Docker
- n8n:开源自托管自动化工具,通过可视化节点编排实现跨应用数据同步(如 Slack 通知、Google Sheets 同步、API 调用等)。
- Docker:容器化技术,隔离环境依赖,简化安装与维护(无需手动配置 Node.js 或其他运行时)。
1.2 安装 Docker Desktop(Mac)
Docker 是运行 n8n 容器的前提,需先安装 Docker Desktop:
- 访问 Docker 官网,下载 Mac 版本安装包(
.dmg)。 - 双击安装包,将 Docker 图标拖拽到
Applications文件夹。 - 启动 Docker Desktop(通过 Launchpad 或 Spotlight 搜索),等待初始化完成(状态栏显示 Docker 图标及“Docker 正在运行”)。
二、部署 n8n 容器
2.1 拉取 n8n 官方镜像
打开终端(Terminal),执行以下命令拉取最新版 n8n 镜像:
docker pull n8nio/n8n:latest
- 若需指定版本(如
v1.24.0),替换latest为具体版本号(可从 n8n 发布页 查看)。
2.2 启动 n8n 容器(关键配置说明)
执行以下命令启动容器,重点关注数据持久化与端口映射:
docker run -d --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n -e N8N_BASIC_AUTH_USER=admin -e N8N_BASIC_AUTH_PASSWORD=admin --restart unless-stopped n8nio/n8n:latest
参数详解:
-
d:后台运行容器( detached mode)。 -
-name:容器别名,方便后续管理(如docker stop n8n)。 -
p:端口映射,格式为本地端口:容器端口(n8n 默认监听 5678)。 -
v:数据卷映射,~/.n8n是本地 Mac 的隐藏目录(自动创建),用于持久化存储 n8n 的配置文件、工作流数据等(重要!避免容器删除后数据丢失)。 -
e:环境变量,设置管理员账号密码(不设置时,首次访问会提示随机生成的账号密码,需查看容器日志获取)。 -
-restart unless-stopped:确保容器意外退出后自动恢复(生产环境推荐)。
三、验证安装与访问界面
3.1 检查容器状态
执行以下命令确认容器正常运行:
docker ps | grep n8n
- 若显示
Up状态(如n8n ... Up 5 minutes),说明容器启动成功。
3.2 访问 n8n Web 界面
打开浏览器,输入 http://localhost:5678,进入 n8n 登录页:
• 若设置了 -e N8N_BASIC_AUTH_USER 和 -e N8N_BASIC_AUTH_PASSWORD,使用设置的账号密码登录。
- 若未设置,首次登录会提示随机生成的账号(如
admin)和密码(查看容器日志获取:docker logs n8n)。
四、数据管理与备份
4.1 数据存储路径
n8n 的核心数据(工作流、配置、插件)存储在本地 ~/.n8n 目录下:
• ~/.n8n/.config:配置文件(如数据库连接、邮件设置)。
-
~/.n8n/.data:工作流定义、用户数据等。
4.2 手动备份数据
定期备份 ~/.n8n 目录即可完整保存 n8n 数据:
# 备份到其他目录(如 ~/Backups/n8n-backup)
cp -r ~/.n8n ~/Backups/n8n-backup
4.3 恢复数据
若容器损坏或需迁移,只需将备份的 ~/.n8n 目录覆盖到本地,重新启动容器即可恢复数据。
五、服务管理(启动/停止/重启)
通过 Docker 命令管理容器生命周期:
| 操作 | 命令 | 说明 |
|---|---|---|
| 启动容器 | docker start n8n |
启动已停止的容器 |
| 停止容器 | docker stop n8n |
停止运行中的容器 |
| 重启容器 | docker restart n8n |
重启容器(保留数据) |
| 查看容器日志 | docker logs n8n |
查看启动日志或错误信息(调试用) |
六、升级 n8n 版本
Docker 方式升级非常便捷,无需手动迁移数据:
-
拉取最新镜像(或指定版本):
docker pull n8nio/n8n:latest # 或 v1.25.0 -
停止并删除旧容器(数据卷保留):
docker stop n8n && docker rm n8n -
用新镜像重新启动容器(复用原数据卷):
docker run -d \\\\ --name n8n \\\\ -p 5678:5678 \\\\ -v ~/.n8n:/home/node/.n8n \\\\ --restart unless-stopped \\\\ n8nio/n8n:latest # 使用新版本镜像
七、注意事项
端口冲突:若本地 5678 端口被占用,修改
p参数(如p 8080:5678,访问http://localhost:8080)。权限问题:若提示
Permission denied,尝试以管理员权限运行终端(或调整~/.n8n目录权限:chmod -R 755 ~/.n8n)。-
安全设置:生产环境建议:
• 启用 HTTPS(通过 Nginx 反向代理配置 SSL 证书);
- 修改默认管理员密码(避免弱密码);
- 关闭不必要的端口(仅保留 5678)。
总结
通过 Docker 搭建 n8n 是最便捷、易管理的方式,兼顾环境隔离、数据持久化和灵活运维。只需几条命令即可完成部署,适合个人开发者、团队自动化场景。搭建完成后,通过可视化界面拖拽节点即可设计工作流,大幅提升跨应用协作效率!