n8n Docker Compose 部署指南
使用 Docker Compose 部署 n8n 是快速搭建私有化工作流自动化平台最稳妥的方式。相比手动安装,容器化方案能更好地隔离环境、管理依赖并实现数据持久化。下面将详细拆解配置文件参数,并提供官方与中文汉化版的完整 YAML 示例。
核心配置参数说明
docker-compose.yml 是部署的核心。下表列出了关键参数的作用及建议值,理解这些变量有助于后续排查问题。
| 参数 | 建议配置 | 说明 |
|---|---|---|
image | n8nio/n8n 或社区版 | 指定镜像源。前者为官方英文原版,后者包含中文界面支持。 |
container_name | n8n | 固定容器名称,便于后续管理和调试。 |
restart | always | 确保服务器重启后服务自动拉起。 |
ports | 5678:5678 | 映射主机端口到容器内部,默认访问端口为 5678。 |
environment | 见下方列表 | 环境变量控制实例行为,如时区、语言、协议等。 |
volumes | /opt/n8n/data:/home/node/.n8n | 重要:挂载宿主机目录以持久化存储工作流和凭证数据,防止容器删除后丢失。 |
关键环境变量
GENERIC_TIMEZONE: 推荐设置为Asia/Shanghai,确保定时任务(Cron)时间准确。NODE_ENV: 生产环境建议设为production,优化性能表现。N8N_SECURE_COOKIE: 局域网或非 HTTPS 环境下访问时,若遇到 Cookie 报错,需设为false。N8N_HOST&WEBHOOK_URL: 填写实际访问域名或 IP,避免 Webhook 回调地址错误。N8N_DEFAULT_LOCALE: 仅中文版镜像需要,设为zh-CN开启中文界面。
部署文件配置
根据需求选择以下任一配置模板。注意替换其中的 <your-hostname> 为你的实际服务器地址,并将数据路径调整为你的偏好目录。
1. 官方英文版
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: always
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Shanghai
- NODE_ENV=production
- N8N_SECURE_COOKIE=false
- N8N_HOST=<your-hostname>
- WEBHOOK_URL=http://<your-hostname>:5678/
- N8N_PORT=5678
- N8N_PROTOCOL=http
volumes:
- /opt/n8n/data:/home/node/.n8n
2. 中文汉化版
如果你更习惯中文操作界面,可以使用社区维护的镜像。配置逻辑基本一致,主要区别在于镜像源和语言设置。
services:
n8n:
image: blowsnow/n8n-chinese
container_name: n8n
restart: always
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Shanghai
- NODE_ENV=production
- N8N_DEFAULT_LOCALE=zh-CN
- N8N_SECURE_COOKIE=false
- N8N_HOST=<your-hostname>
- WEBHOOK_URL=http://<your-hostname>:5678/
- N8N_PORT=5678
- N8N_PROTOCOL=http
volumes:
- /opt/n8n/data:/home/node/.n8n
执行部署步骤
准备好配置文件后,按顺序在服务器上执行以下操作即可启动服务。
首先创建专用的部署目录和数据存储目录,并赋予当前用户读写权限,避免后续出现权限错误。
mkdir ~/n8n-deploy
cd ~/n8n-deploy
sudo mkdir -p /opt/n8n/data
sudo chown $(id -u):$(id -g) /opt/n8n/data
接着创建 docker-compose.yml 文件。你可以直接使用文本编辑器打开该文件,将上方对应的 YAML 内容粘贴进去并保存。
vim docker-compose.yml
# 或者使用 nano docker-compose.yml
确认文件无误后,启动容器。Docker Compose 会自动拉取镜像并在后台运行。
docker-compose up -d
此时可以通过浏览器访问 http://<your-hostname>:5678 进入初始化向导。
常用管理命令
所有管理操作建议在 ~/n8n-deploy 目录下进行。以下是日常运维中最高频的几个指令。
-
查看实时日志:排查启动失败或运行异常时非常有用,按
Ctrl + C退出。docker-compose logs -f -
重启服务:修改配置后生效,或临时停止服务后恢复。
docker-compose restart -
更新版本:拉取最新镜像并重建容器,保留现有数据。
docker-compose pull
docker-compose up -d
- **停止服务**:仅停止容器进程,不删除容器对象。
```bash
docker-compose stop
- 完全清理:警告此操作不可逆,会删除容器及本地数据卷。
docker-compose down sudo rm -rf /opt/n8n/data docker rmi n8nio/n8n # 或 blowsnow/n8n-chinese
通过上述配置,你可以快速拥有一个稳定运行的 n8n 实例。后续只需关注工作流的编排与集成,无需再为环境依赖操心。
