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 空 路径不一致 保证相对路径
能启动但异常 没停机就打包 重新来一遍
相关推荐
生活爱好者!6 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
java_logo7 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
MC皮蛋侠客7 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
Hui Baby8 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
用户2333768521810 小时前
Docker 端口"时通时不通"的排查实战
docker
做个文艺程序员10 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器
ShiXZ21310 小时前
Redis docker-compose 部署指南
redis·docker·eureka
梦梦代码精12 小时前
基于ThinkPHP6 + Vue3的家政预约系统全解析:从LBS定位到自动派单的完整实现
java·docker·开源·php·代码规范
Zhu75813 小时前
在k8s环境部署Apache Superset最新版
容器·kubernetes·apache
小的博客13 小时前
windows下安装Docker Desptop
运维·docker·容器