本文最后更新于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
- 从 Docker 官网 下载安装包
- 安装过程中确保勾选 “Use WSL 2 instead of Hyper-V”
- 完成安装后重启电脑
配置 Docker Desktop
- 打开 Docker Desktop → Settings → General
- 勾选 “Start Docker Desktop when you log in”
- 勾选 “Use Docker Compose V2”
- 勾选 “Start Docker Desktop when you log in”
- 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了,但配置更复杂
验证自启动流程
重启电脑后检查
- 系统托盘是否有 Docker 图标
- 在 Ubuntu WSL2 中运行
docker ps查看 n8n 状态 - 访问
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
- 检查 Docker Desktop 是否运行
- 在 Ubuntu WSL2 中运行
docker ps检查容器状态 - 运行
docker logs n8n查看错误信息 - 重启 WSL 服务:
wsl --shutdown然后重新打开 Ubuntu
端口无法访问
- 检查防火墙设置
- 验证端口映射:
docker port n8n - 尝试使用不同端口
权限错误
- 确保使用
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - 重置数据卷:
docker volume rm n8n_data然后重新创建





