Docker Desktop + WSL2 环境下 n8n 自动化工作流平台安装配置完整教程
本文最后更新于72 天前,其中的信息可能已经过时,如有错误请发送邮件到184874483@qq.com

本教程详细记录在 Windows Docker Desktop + WSL2 环境下安装、配置 n8n 自动化平台,并确保开机自启动的完整流程。适用于个人使用或团队部署。

环境要求

  • Windows 10/11 专业版或企业版(支持 WSL2)
  • Docker Desktop 4.0+
  • WSL2 已启用并安装 Ubuntu 发行版
  • 至少 4GB 可用内存

第一步:安装和配置基础环境

启用 WSL2

# 以管理员身份运行 PowerShel
wsl --install
wsl --set-default-version 2

安装 Docker Desktop

  1. 从 Docker 官网 下载安装包
  2. 安装过程中确保勾选 “Use WSL 2 instead of Hyper-V”
  3. 完成安装后重启电脑

配置 Docker Desktop

  1. 打开 Docker Desktop → Settings → General
    • 勾选 “Start Docker Desktop when you log in”
    • 勾选 “Use Docker Compose V2” 
  2. Settings → Resources → WSL Integration
    • 开启 “Enable integration with my default WSL distro”
    • 开启你的 Ubuntu 发行版集成 

第二步:安装和配置 n8n

创建数据卷

# 在 Ubuntu WSL2 中执行
docker volume create n8n_data

运行 n8n 容器

建议在Ubuntu WSL2中执行,因为在Windows的CMD中,使用多行命令时,每行结尾的反斜杠\可能不会被正确解释(反斜杠 \ 后面有空格 – 这在Windows命令行中会导致解析错误)。可以将整个命令写在一行中,或者使用适合CMD的多行写法。(去掉反斜杠后的空格:\ → \(Linux)或 ^(Windows CMD))

bash

在WSL Ubuntu中运行
docker run -d --name n8n --restart=unless-stopped -p 5678:5678 \
  -e GENERIC_TIMEZONE="Asia/Shanghai" \
  -e TZ="Asia/Shanghai" \
  -e DB_SQLITE_POOL_SIZE=10 \
  -e N8N_RUNNERS_ENABLED=true \
  -e N8N_BLOCK_ENV_ACCESS_IN_NODE=true \
  -e N8N_GIT_NODE_DISABLE_BARE_REPOS=true \
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
  -e N8N_DIAGNOSTICS_ENABLED=false \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n:latest
在Windows CMD中可以这样写:
docker run -d --name n8n -p 5678:5678 -e GENERIC_TIMEZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" -e DB_SQLITE_POOL_SIZE=10 -e N8N_RUNNERS_ENABLED=true -e N8N_BLOCK_ENV_ACCESS_IN_NODE=true -e N8N_GIT_NODE_DISABLE_BARE_REPOS=true -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true -v n8n_data:/home/node/.n8n n8nio/n8n

或者也可以这样子写(多行版本)
docker run -d --name n8n -p 5678:5678 ^
  -e GENERIC_TIMEZONE="Asia/Shanghai" ^
  -e TZ="Asia/Shanghai" ^
  -e DB_SQLITE_POOL_SIZE=10 ^
  -e N8N_RUNNERS_ENABLED=true ^
  -e N8N_BLOCK_ENV_ACCESS_IN_NODE=true ^
  -e N8N_GIT_NODE_DISABLE_BARE_REPOS=true ^
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true ^
  -v n8n_data:/home/node/.n8n ^
  n8nio/n8n

验证安装

# 检查容器状态
docker ps -a | grep n8n
# 查看启动日志
docker logs n8n
# 检查端口映射
docker port n8n

正常输出应该显示:

  • STATUS: “Up X minutes”
  • PORTS: “0.0.0.0:5678->5678/tcp”

访问 n8n

在浏览器中打开:http://localhost:5678

第三步:解决常见问题

权限问题修复

如果遇到文件权限错误,重新运行容器并添加权限修复参数:

Bash

docker rm -f n8n
docker run -d ... [同上,包含 N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true]

网络连接问题:

禁用遥测数据避免 ECONNRESET 错误:Bash

# 在运行命令中添加
-e N8N_DIAGNOSTICS_ENABLED=false

端口冲突

如果 5678 端口被占用,改用其他端口:

Bash:
# 将外部端口改为 5679
-p 5679:5678

访问地址变为:http://localhost:5679

第四步:配置开机自启动

确保 Docker Desktop 自启动

  • Docker Desktop Settings → General
  • 确认 “Start Docker Desktop when you log in” 已勾选 

确保容器重启策略

Bash:
# 为现有容器设置重启策略
docker update --restart=unless-stopped n8n

常见问题1:启动顺序竞争

有时候Windows启动太快,WSL服务还没完全就绪。则创建一个小脚本延迟启动Docker相关服务:

如果自启动出现了一些问题,则创建一个批处理文件 start_n8n.bat

Bash
# 在Ubuntu中创建 ~/docker_startup.sh
echo '#!/bin/bash
sleep 30
docker start n8n' > ~/docker_startup.sh
chmod +x ~/docker_startup.sh

常见问题2:Docker Desktop启动失败

重启后观察系统托盘是否有Docker图标,重启后观察系统托盘是否有Docker图标

# 在Windows PowerShell中(管理员权限)
$action = New-ScheduledTaskAction -Execute "C:\Program Files\Docker\Docker\Docker Desktop.exe"
$trigger = New-ScheduledTaskTrigger -AtStartup
Register-ScheduledTask -TaskName "StartDockerDesktop" -Action $action -Trigger $trigger -RunLevel Highest

使用Windows任务计划

创建一个批处理文件 start_n8n.bat

batch
@echo off
timeout /t 30 /nobreak
wsl --shutdown
timeout /t 5 /nobreak
start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"

然后通过任务计划程序设置开机运行这个批处理。

也可以:直接在WSL中安装Docker Engine,这样就不依赖Docker Desktop了,但配置更复杂

验证自启动流程

重启电脑后检查

  1. 系统托盘是否有 Docker 图标
  2. 在 Ubuntu WSL2 中运行 docker ps 查看 n8n 状态
  3. 访问 http://localhost:5678 确认 n8n 可访问

日常管理和维护

常用管理命令

Bash
# 查看运行状态
docker ps | grep n8n

# 查看实时日志
docker logs -f n8n

# 停止容器
docker stop n8n

# 启动容器
docker start n8n

# 重启容器
docker restart n8n

数据备份

Bash
# 备份 n8n 数据
docker run --rm -v n8n_data:/source -v $(pwd):/backup alpine \
  tar -czf /backup/n8n_backup_$(date +%Y%m%d).tar.gz -C /source ./

# 恢复备份
docker run --rm -v n8n_data:/target -v $(pwd):/backup alpine \
  tar -xzf /backup/n8n_backup_20241201.tar.gz -C /target

更新 n8n 版本

Bash
# 停止并删除旧容器
docker stop n8n
docker rm n8n

# 拉取最新镜像并重新运行
docker pull n8nio/n8n:latest
# 重新运行第 3.2 步的命令

故障排除

重启后无法访问 n8n

  1. 检查 Docker Desktop 是否运行
  2. 在 Ubuntu WSL2 中运行 docker ps 检查容器状态
  3. 运行 docker logs n8n 查看错误信息
  4. 重启 WSL 服务:wsl --shutdown 然后重新打开 Ubuntu

端口无法访问

  1. 检查防火墙设置
  2. 验证端口映射:docker port n8n 
  3. 尝试使用不同端口 

权限错误

  1. 确保使用 N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
  2. 重置数据卷:docker volume rm n8n_data 然后重新创建
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇