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 空 路径不一致 保证相对路径
能启动但异常 没停机就打包 重新来一遍
相关推荐
陈平安Java and C2 小时前
Docker Compose容器编排
docker
江湖有缘3 小时前
Docker一键部署docat:打造轻量级开源文档管理系统
docker·容器·开源
Tummer83633 小时前
Docker+n8n全流程配置和部署(N8N部署流程)
运维·docker·容器
Lam㊣3 小时前
Centos 7 系统docker pull 设置代理
docker·eureka·centos
程序员老赵3 小时前
PyTorch Docker 容器化部署与生产运行实践
pytorch·docker·容器
lewis_lk3 小时前
docker-compose部署mysql&redis
后端·docker
伞啊伞3 小时前
k8s(五)集群调度与PV和PVC
云原生·容器·kubernetes
海鸥813 小时前
K8s 的 command/args 会覆盖 Dockerfile 的 CMD/ENTRYPOINT
云原生·容器·kubernetes
江湖有缘3 小时前
Mikochi + Docker:打造属于你的私有云文件浏览器
运维·docker·容器