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 空 路径不一致 保证相对路径
能启动但异常 没停机就打包 重新来一遍
相关推荐
天朝八阿哥5 小时前
使用Docker+vscode搭建离线的go开发调试环境
后端·docker·visual studio code
阿虎儿1 天前
Docker安装(非sudo用户可用)
docker
fetasty2 天前
rustfs加picgo图床搭建
docker
蝎子莱莱爱打怪3 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
小p4 天前
docker学习7:docker 容器的通信方式
docker
小p4 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p4 天前
docker学习3:docker是怎么实现的?
docker
小p5 天前
docker学习: 2. 构建镜像Dockerfile
docker
小p6 天前
docker学习: 1. docker基本使用
docker
崔小汤呀6 天前
Docker部署Nacos
docker·容器