阶段 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 流程跑通了