Docker+n8n全流程配置和部署(N8N部署流程)

阶段 0:确认你的环境(1 分钟)

在 Ubuntu 22.04 虚拟机里打开终端,执行:

bash 复制代码
lsb_release -a

确认输出类似:

bash 复制代码
Ubuntu 22.04 LTS

如果是 → 继续

阶段 1:安装 Docker(关键但简单)

1️⃣ 更新系统(一次)

bash 复制代码
sudo apt update
sudo apt upgrade -y

如果出弹窗,直接默认OK
2️⃣ 安装 Docker(官方方式)

bash 复制代码
sudo apt install -y docker.io

安装完成后,检查:

bash 复制代码
docker --version

看到类似:

bash 复制代码
Docker version xx.x.x 
# 我的是Docker version 28.2.2, build 28.2.2-0ubuntu1~22.04.1

✅ 说明 Docker 已安装成功

阶段 2:用 Docker 跑起 n8n(10 分钟见成果)

1️⃣ 创建项目目录(养成好习惯)

bash 复制代码
# 先切换到创建docker的目录中,再执行命令
cd /home/projects/docker-services
mkdir -p n8n-dev
cd n8n-dev

2️⃣ 创建最简单的 docker-compose.yml

bash 复制代码
nano docker-compose.yml

粘贴以下内容(不要改):

bash 复制代码
version: "3"

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    ports:
      - "5678:5678"
    volumes:
      - ./n8n_data:/home/node/.n8n
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=admin123
      - TZ=Asia/Shanghai
      - N8N_SECURE_COOKIE=false

保存并退出(nano:Ctrl + O回车Ctrl + X

3️⃣ 启动 n8n

运行前先安装docker-compose命令

bash 复制代码
sudo apt  install docker-compose

需要输入[Y]继续安装

然后使用命令docker-compose up -d进行启动

bash 复制代码
docker-compose up -d

第一次会自动下载镜像(1~2 分钟)。

如果出现连接失败报错:

bash 复制代码
ERROR: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Ubuntu 虚拟机 无法直接访问 Docker Hub。在国内环境或者虚拟机网络配置下很常见。

解决方案:配置 Docker 官方国内加速器

编辑 Docker 配置文件:

bash 复制代码
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

添加国内加速器地址:

bash 复制代码
{
  "registry-mirrors": [
    "https://mirror.baidubce.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com",
    "https://docker.m.daocloud.io"
  ]
}

重启 Docker:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

再次拉镜像:

bash 复制代码
docker-compose up -d

如果还是下载慢或者卡死,启动究极方案:用主机(自己电脑)docker来下载镜像,然后复制到虚拟机中加载。

主机电脑(windows)安装docker,创建一个docker-source目录,在此目录中执行cmd命令行,执行命令(确保docker服务启动状态,否则报错The system cannot find the file specified.):

bash 复制代码
docker pull n8nio/n8n:latest
docker save n8nio/n8n:latest -o n8n_latest.tar

第一步完成后,目录下是没有文件的,第二部完成后,目录下会生成.tar文件。

文件复制到虚拟机对应的目录。执行命令

bash 复制代码
docker load -i n8n_latest.tar
docker-compose up -d

4️⃣ 确认 n8n 已启动

bash 复制代码
docker ps

看到类似:

bash 复制代码
n8n    Up    0.0.0.0:5678->5678/tcp

如果时主机复制过来的文件,此时可能无法正常启动,一般是文件和目录的权限问题:

使用命令查看日志:

bash 复制代码
docker logs n8n

如果出现:

bash 复制代码
No encryption key found - Auto-generating and saving to: /home/node/.n8n/config
No encryption key found - Auto-generating and saving to: /home/node/.n8n/config
Error: EACCES: permission denied, open '/home/node/.n8n/config'

那么就是权限问题,到目录下执行

bash 复制代码
sudo chown -R 1000:1000 n8n_data
docker-compose down
docker-compose up -d

之后再docker ps 确认

正常输出会有:

csharp 复制代码
n8n    Up    0.0.0.0:5678->5678/tcp

✅ 成功

阶段 3:打开 n8n 页面(第一次"看到成果")

在 宿主机浏览器里访问:

csharp 复制代码
http://<虚拟机IP>:5678

如果你在虚拟机本机浏览器:

csharp 复制代码
http://localhost:5678

登录信息

用户名:admin

密码:admin123

你应该能看到 n8n 的可视化界面 🎉

这一步成功,说明 Docker + n8n 全部 OK。

阶段 4:跑一个「最小测试流程」(非常重要)

点一下 → 流程真的跑

1️⃣ 新建 Workflow

点击 "New Workflow"

2️⃣ 添加一个节点:Manual Trigger

左侧搜索:Manual Trigger

拖到画布

3️⃣ 添加一个节点:Set

搜索:Set

连接到 Manual Trigger

配置:

点击 Add Value

Key:message

Value:Hello n8n

4️⃣ 点击右上角 ▶ Execute Workflow

你应该看到:

Set 节点输出

csharp 复制代码
{
  "message": "Hello n8n"
}

🎉 恭喜:你的第一个 n8n 流程跑通了

相关推荐
珠海西格电力科技15 分钟前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀33 分钟前
Linux环境变量
linux·运维·服务器
zzzsde39 分钟前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
70asunflower2 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
聆风吟º2 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
ShiLiu_mtx2 小时前
k8s - 7
云原生·容器·kubernetes
NPE~2 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
神梦流3 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器
春日见3 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe23 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr