n8n Docker 部署手册

一、n8n 简介

n8n 是一款专为技术团队打造的 开源工作流自动化平台(Workflow Automation Platform),兼具「低代码(No-code)」与「可编程(Pro-code)」双重特性。

它让你可以轻松地将不同系统、API 和服务连接起来,自动执行任务、数据同步、通知、集成 AI 模型等各种流程。

n8n 不仅能节省大量重复性工作,还能在团队内部构建稳定、安全的自动化体系。

🔑 核心功能亮点

功能 说明
🧠 可编程与可视化兼备 支持可视化拖拽节点,也能直接编写 JavaScript/Python 逻辑。
🤖 AI 原生支持 内置 LangChain、OpenAI 接口,可搭建自定义 AI Agent 流程。
🧩 400+ 集成节点 支持 GitHub、Slack、MySQL、Redis、Google Sheets、Telegram、OpenAI 等常用服务。
🔐 完全自托管 Fair-Code 许可协议,支持本地部署,数据完全掌控在自己手中。
🧱 企业级特性 提供权限管理、SSO、离线部署(Air-gapped)等企业功能。
🌍 活跃社区生态 超过 900+ 预制工作流模板,可快速复用。

简言之:n8n = 可编程的 Zapier + 自主可控的 Airflow + AI 工作流引擎


🧰 准备工作

若你的系统尚未安装 Docker,请先一键安装:

Linux Docker & Docker Compose 一键安装

一键安装配置脚本(推荐方案):

该脚本支持多种 Linux 发行版,支持一键安装 Docker、Docker Compose 并自动配置轩辕镜像加速源。

复制代码
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)

二、n8n Docker 镜像来源

你可以在 轩辕镜像 中找到官方同步的 n8n 镜像页面:

👉 https://xuanyuan.cloud/r/n8nio/n8n

镜像完全与官方 docker.n8n.io/n8nio/n8n 同步,支持快速拉取和国内加速。


三、下载 n8n 镜像

3.1 使用轩辕镜像拉取(推荐)

复制代码
docker pull docker.xuanyuan.run/n8nio/n8n:latest

3.2 拉取后改名(标准命名方式)

复制代码
docker pull docker.xuanyuan.run/n8nio/n8n:latest \
  && docker tag docker.xuanyuan.run/n8nio/n8n:latest n8nio/n8n:latest \
  && docker rmi docker.xuanyuan.run/n8nio/n8n:latest

说明:

  • docker pull:从轩辕镜像源拉取镜像,速度快且稳定
  • docker tag:重命名为官方标准名称,方便后续使用
  • docker rmi:删除临时镜像标签,节省存储空间

3.3 官方方式(可选)

如果网络能直连官方服务器,可直接拉取:

复制代码
docker pull n8nio/n8n:latest

3.4 验证镜像下载

复制代码
docker images

出现类似输出即表示成功:

复制代码
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
n8nio/n8n      latest    7b14ac9439f2   2 weeks ago    450MB

四、启动 n8n 容器

4.1 快速启动(适合初学者)

此方式使用默认配置与 SQLite 存储,开箱即用:

复制代码
docker volume create n8n_data

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n

启动成功后,访问浏览器:

复制代码
http://localhost:5678

即可看到 n8n 的可视化工作流界面。

💡 数据将保存在名为 n8n_data 的 Docker 卷中,包含所有工作流、凭证与加密密钥。


4.2 持久化部署(推荐)

适合生产环境,挂载宿主机目录,保证配置与数据持久化。

第一步:创建目录
复制代码
mkdir -p /data/n8n/{data,files}
第二步:启动容器
复制代码
docker run -d --name n8n-web \
  -p 5678:5678 \
  -e TZ=Asia/Shanghai \
  -v /data/n8n/data:/home/node/.n8n \
  n8nio/n8n

说明:

参数 含义
-v /data/n8n/data:/home/node/.n8n 挂载数据目录,防止重启丢失工作流
-e TZ=Asia/Shanghai 设置时区为北京时间
-p 5678:5678 映射本地端口

4.3 开启公网隧道(测试 Webhook)

Webhook 需要公网访问时,可使用内置的 tunnel 功能(仅限开发测试):

复制代码
docker run -it --rm \
  --name n8n-tunnel \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n start --tunnel

⚠️ 注意:tunnel 模式仅供测试,不应在生产环境使用。


五、与 PostgreSQL 配合使用(高级部署)

默认 n8n 使用 SQLite,可切换为 PostgreSQL 以获得更高性能和数据安全性。

5.1 启动 PostgreSQL(示例)

复制代码
docker run -d \
  --name n8n-postgres \
  -e POSTGRES_USER=n8n \
  -e POSTGRES_PASSWORD=123456 \
  -e POSTGRES_DB=n8n \
  -v /data/postgres:/var/lib/postgresql/data \
  postgres:15

5.2 启动 n8n 并连接数据库

复制代码
docker run -d --name n8n-db \
  -p 5678:5678 \
  -e DB_TYPE=postgresdb \
  -e DB_POSTGRESDB_DATABASE=n8n \
  -e DB_POSTGRESDB_HOST=n8n-postgres \
  -e DB_POSTGRESDB_PORT=5432 \
  -e DB_POSTGRESDB_USER=n8n \
  -e DB_POSTGRESDB_PASSWORD=123456 \
  -v /data/n8n/data:/home/node/.n8n \
  --link n8n-postgres \
  n8nio/n8n

六、使用 Docker Compose 一键部署

适合长期运行与团队协作环境。

6.1 创建 docker-compose.yml

复制代码
version: '3.8'
services:
  postgres:
    image: postgres:15
    container_name: n8n-postgres
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: 123456
      POSTGRES_DB: n8n
    volumes:
      - ./postgres:/var/lib/postgresql/data
    restart: always

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n-service
    ports:
      - "5678:5678"
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: n8n-postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: 123456
      GENERIC_TIMEZONE: Asia/Shanghai
      TZ: Asia/Shanghai
    volumes:
      - ./n8n_data:/home/node/.n8n
    depends_on:
      - postgres
    restart: always

6.2 启动服务

复制代码
docker compose up -d

查看状态:

复制代码
docker compose ps

停止:

复制代码
docker compose down

七、升级与维护

7.1 拉取最新镜像

复制代码
docker pull n8nio/n8n:latest

7.2 重启容器

复制代码
docker stop n8n-web && docker rm n8n-web
docker run -d --name n8n-web -p 5678:5678 -v /data/n8n/data:/home/node/.n8n n8nio/n8n

或使用 Compose:

复制代码
docker compose pull
docker compose down
docker compose up -d

更新前请务必备份 /data/n8n/data 目录,避免密钥丢失导致凭证无法解密。


八、常见问题

8.1 启动后网页打不开?

  • 检查端口是否被占用:netstat -tulnp | grep 5678
  • 检查容器日志:docker logs n8n-web
  • 确认防火墙放行端口:ufw allow 5678/tcp

8.2 数据丢失?

请确认是否挂载了 /home/node/.n8n 数据卷。若该目录未持久化,重启后将丢失所有工作流。

8.3 如何修改时区?

在运行命令或 Compose 文件中增加:

复制代码
-e TZ=Asia/Shanghai
-e GENERIC_TIMEZONE=Asia/Shanghai

8.4 密钥丢失导致无法解密?

.n8n 目录被误删,n8n 会生成新的密钥,旧凭证无法解密。

建议定期备份 /data/n8n/data


九、验证运行状态

复制代码
docker ps

若状态为 Up,表示运行成功。

访问浏览器:

复制代码
http://服务器IP:5678

若能正常打开 n8n 界面并创建工作流,即部署成功 🎉。


🔚 结语

至此,你已掌握 基于轩辕镜像的 n8n Docker 部署全流程 ------

从镜像拉取、快速部署、持久化挂载、数据库集成,到 Compose 管理与版本升级。

  • 新手用户:建议先使用 SQLite 快速启动熟悉界面
  • 工程师/团队部署:推荐 PostgreSQL + Docker Compose 架构
  • 进阶应用:结合 Redis、Webhook、AI 节点构建自动化系统

🚀 n8n 让自动化更智能、更自由,让每个开发者都能构建属于自己的「自托管 Zapier」。

相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn861 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉1 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦2 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
2601_961875242 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant