使用Docker部署n8n指南
Docker部署优势
- 提供干净的环境安装n8n
- 简化数据库配置过程
- 避免不同操作系统带来的问题
- 避免操作系统和工具的兼容性问题
- 使迁移到新主机或环境更加简单
前提条件
自托管n8n需要具备以下技术知识:
- 服务器和容器的设置与配置能力
- 应用资源管理和扩展能力
- 服务器和应用程序安全管理能力
- n8n配置经验
注意:如果缺乏服务器管理经验,建议使用n8n Cloud服务。
基本部署步骤
1. 基础启动命令
# 创建数据卷
docker volume create n8n_data
# 运行n8n容器
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
容器启动后,可以通过 http://localhost:5678 访问n8n。
2. 使用PostgreSQL配置
如果需要使用PostgreSQL替代默认的SQLite,可以使用以下命令:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_DATABASE=<数据库名> \
-e DB_POSTGRESDB_HOST=<数据库主机> \
-e DB_POSTGRESDB_PORT=<数据库端口> \
-e DB_POSTGRESDB_USER=<用户名> \
-e DB_POSTGRESDB_PASSWORD=<密码> \
-e DB_POSTGRESDB_SCHEMA=<schema名称> \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
3. 时区设置
可以通过环境变量设置时区:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Asia/Shanghai" \
-e TZ="Asia/Shanghai" \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
更新n8n
1. 使用Docker命令更新
# 拉取最新稳定版本
docker pull docker.n8n.io/n8nio/n8n
# 拉取特定版本
docker pull docker.n8n.io/n8nio/n8n:1.81.0
# 拉取测试版本
docker pull docker.n8n.io/n8nio/n8n:next
2. 使用Docker Compose更新
# 进入docker-compose文件目录
cd </path/to/your/compose/file/directory>
# 拉取最新版本
docker compose pull
# 停止并移除旧版本
docker compose down
# 启动容器
docker compose up -d
开发测试功能
启用Tunnel功能
注意:仅用于本地开发和测试,不要在生产环境使用。
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n \
start --tunnel
注意事项
- 在使用PostgreSQL时,保持
/home/node/.n8n
目录的持久化很重要 - 可以通过
N8N_ENCRYPTION_KEY
环境变量提供加密密钥 - 建议在生产环境使用 PostgreSQL 而不是默认的 SQLite
- 确保正确配置时区以保证定时任务准确执行
- 更新前建议备份数据