n8n Docker 部署教程

DockerMCP最佳实践

一、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」。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生环境下的日志采集存储分析实践
云原生场景下,日志数据的规模和种类剧增,日志采集、加工、分析的多样性也大大增加。面对这些挑战,火山引擎基于超大规模下的 Kubernetes 日志实践孵化出了一套完整的日志采集、加工、查询、分析、消费的平台。本次主要分享了火山引擎云原生日志平台的相关实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论