Docker迁移(N8N项目)

🧭 总体目标

把 本地虚拟机 /home/flexus/n8n-dev

➡ 完整迁移到云服务器 /home/projects/docker-services/n8n-dev

(实际目录依据自己的目录结构自行修改)

保证:

  • workflow / datatable / credential 不丢

  • images、drafts 文件可继续读写(我的n8n做的目录映射,如果没有可以不用管)

  • docker-compose.yml 基本不改

一、在【本地虚拟机】执行(只做 3 件事)

1️⃣ 停止 n8n(必须)

bash 复制代码
cd /home/flexus/n8n-dev
docker-compose down

2️⃣ 打包整个项目目录

⚠️ 不是只打包 n8n_data,是整个 n8n-dev

bash 复制代码
cd /home/flexus
tar -czvf n8n-dev.tar.gz n8n-dev

生成:

/home/flexus/n8n-dev.tar.gz

bash 复制代码
3️⃣ 拷贝到云服务器

在本地执行(示例):

bash 复制代码
scp n8n-dev.tar.gz user@云服务器IP:/home/projects/docker-services/

(或者手动采用其他方式将压缩包复制到云服务器对应目录即可)

二、在【云服务器】执行(核心步骤)

4️⃣ 解压到目标目录

bash 复制代码
cd /home/projects/docker-services
tar -xzvf n8n-dev.tar.gz

最终目录应为:

bash 复制代码
/home/projects/docker-services/n8n-dev
├── docker-compose.yml
├── .env
├── n8n_data/
├── images/
├── drafts/
├── n8n_latest.tar

5️⃣ 修正目录权限(⚠️非常关键)

n8n 容器内用户是 node (uid=1000):

n8n应用使用过程中创建的一些映射目录均要执行

我创建了两个目录(images、drafts)没有创建目录,只执行n8n自带的数据目录即可(配置在yml中的,我的名称是:n8n_data)

bash 复制代码
cd /home/projects/docker-services/n8n-dev
sudo chown -R 1000:1000 n8n_data images drafts
sudo chmod -R 775 n8n_data images drafts

否则可能会报错 Permission denied / Forbidden 等问题

6️⃣(可选)加载本地镜像 n8n_latest.tar

如果云服务器拉不动镜像,加载本地的镜像(提前在主机下载好的,详情见上一篇文章):

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

三、启动并验证

7️⃣ 启动 n8n

bash 复制代码
cd /home/projects/docker-services/n8n-dev
docker-compose up -d

查看日志:

bash 复制代码
docker logs -f n8n

8️⃣ 验证清单(2 分钟)

打开:

bash 复制代码
http://云服务器IP:5678

确认以下几点:

  • ✅ Workflow 全在

  • ✅ DataTable 数据还在

  • ✅ Read / Write File 节点

    • /home/node/.n8n-files/images
    • /home/node/.n8n-files/drafts
    • 能正常读写
  • ✅ 不再出现 Permission denied

四、docker-compose.yml 是否需要改

依据个人的配置代码,我的代码配置的映射目录,主机目录用的都是相对目录,直接不用修改,直接使用。

bash 复制代码
volumes:
  - ./n8n_data:/home/node/.n8n
  - ./images:/home/node/.n8n-files/images
  - ./drafts:/home/node/.n8n-files/drafts

只要目录 + 权限正确,行为 100% 复现。

五、常见踩坑

现象 原因 解决
文件写入失败 权限不对 chown 1000:1000
workflow 不见 没拷 n8n_data 重新迁移
drafts/images 空 路径不一致 保证相对路径
能启动但异常 没停机就打包 重新来一遍
相关推荐
70asunflower6 小时前
用Docker创建不同的容器类型
运维·docker·容器
小Pawn爷7 小时前
3.Dockerfile
docker
CodeGolang7 小时前
Docker容器化部署Zabbix监控系统完整指南
docker·容器·zabbix
忆~遂愿8 小时前
Runtime 上下文管理:计算实例的生命周期、延迟最小化与上下文切换优化
java·大数据·开发语言·人工智能·docker
lpruoyu18 小时前
【Docker进阶-03】存储原理
docker·容器
文静小土豆19 小时前
Docker 与 containerd 代理配置详解:镜像拉取速度慢的终极解决方案
运维·docker·容器
JY.yuyu21 小时前
Docker常用命令——数据卷管理 / 端口映射 / 容器互联
运维·docker·容器
lpruoyu21 小时前
【Docker进阶-06】docker-compose & docker swarm
运维·docker·容器
虾说羊1 天前
docker容器化部署项目流程
运维·docker·容器
骇客野人1 天前
通过脚本推送Docker镜像
java·docker·容器