为什么选择 Docker 安装 n8n?
在当前软件开发的环境中,Docker 已成为一个不可或缺的工具。通过在 Docker 中安装 n8n,您可以享受到以下几大优势:
- 干净、隔离的环境:确保 n8n 在干净的环境中运行,避免其它程序的干扰。
- 简化数据库配置:无论您喜欢的是 SQLite 还是 PostgreSQL,设置都变得简单高效。
- 一致性与兼容性:减少操作系统差异带来的问题。
- 轻松迁移:无论是更换主机还是环境,迁移变得直观。
要充分利用 Docker 的强大,您还可以通过 Docker Compose 一键配置 n8n。更多的 Docker Compose 示例请访问 n8n-hosting 存储库,满足各种架构需求。
自托管 n8n 的基本要求
在考虑自托管 n8n 之前,您需要具备一定的技术知识,包括:
- 服务器与容器设置和配置
- 应用程序资源管理与扩展
- 服务器及应用的安全配置
- n8n 的基本配置知识
对于初学者,n8n 推荐使用 n8n Cloud,以避免可能的数据丢失、安全问题和系统崩溃。请在开始之前确保已安装 Docker Desktop(适用于 Mac 和 Windows)可以参考本站教程:

Windows电脑安装Docker Desktop

Mac安装Docker Desktop
Linux 用户则需根据发行版单独安装
Docker Engine
和 Docker Compose
,请参考
Linux安装Docker
每周 n8n 都会推出新的次要版本。您可以选择最新的稳定版本
latest
,或试试可能不稳定的测试版本(next)。
提示:安装完Docker后,第一时间打开设置、Resources
、Advanced
,设置一下镜像存储位置。否则你的C盘空间会快就会被占满!
在安装n8n前,我们需要先创建n8n存储位置,然后再根据不同的方式来安装n8n,最后再启动运行n8n。
第一步、Docker设置n8n存储卷
在Docker左侧菜单找到 Volumes ,然后点击 Create a volume,如下图
在弹出的框中输入:n8n_data
,然后点击Create
当在Volumes 标签界面显示刚新建的 n8n_data
时,则证明创建成功,如下图。
第二步、Docker安装 n8n
有两种方式安装:一种是在Docker的Hub中搜索n8n安装,一种是命令行安装
1.Docker Hub中搜索n8n安装
如果无法搜索到,则需要科学上网,如无法科学上网,下面有分享临时拉取镜像的方法
打开Docker后,在菜单左侧找到Docker Hub
并点击,然后在搜索框中输入“ n8n
”,再点击搜索
在搜索结果中选择n8nio/n8n
点击打开,然后在右侧找到“Pull
”按钮,等待完成即可。
安装完成后打开左侧的Images
的标签,就可以看到到刚才安装好的ninio/n8n
,如果使用命令拉取的话,显示的不一定是ninio/n8n
2.命令行方式安装
适合无法科学上网安装n8n方法
使用终端Terminal
临时镜像拉取n8n到Docker,在左侧菜单中找到Containers,然后在右下角底部点击Terminal,然后在点击Enable
在终端输入如下命令的其中一个,输入完命令(可复制粘贴)后点击回车键,等待大概10分钟左右
docker pull docker.1ms.run/n8nio/n8n:latest
docker pull docker.1panel.live/n8nio/n8n:latest
安装完成后,会直接在该界面显示安装好的n8n
可以科学上网运行以下命令
docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
这个命令的作用是:
- 创建一个卷
n8n_data
,用于存储持久化数据。 - 下载 n8n 镜像并启动容器。
- 在端口 5678 上公开 n8n。
第三步、在Docker中启动运行n8n
在上面安装完成n8n后,我们再打开左侧Images标签,点击右侧找到一个开始按钮,点击运行
然后在弹出的窗口中点击 Optional settings
进行设置
在下拉弹出的输入框中按照如下填写,然后点击Run
即可。
Container name:n8n
Host port:5678
Volumes
Host path:n8n_data
Container path:/home/node/.n8n
安装完成后,在页面的底部,会看到访问n8n的浏览器地址
现在,您可以通过访问 http://localhost:5678 来使用 n8n。
第四步、使用 PostgreSQL 数据库(可选)
默认情况下,n8n 使用 SQLite
来保存数据,但您也可以通过以下步骤配置 PostgreSQL:
docker run -it --rm
--name n8n
-p 5678:5678
-e DB_TYPE=postgresdb
-e DB_POSTGRESDB_DATABASE=<POSTGRES_DATABASE>
-e DB_POSTGRESDB_HOST=<POSTGRES_HOST>
-e DB_POSTGRESDB_PORT=<POSTGRES_PORT>
-e DB_POSTGRESDB_USER=<POSTGRES_USER>
-e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA>
-e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD>
-v n8n_data:/home/node/.n8n
docker.n8n.io/n8nio/n8n
确保在命令中替换 <POSTGRES_DATABASE>
等占位符为实际值。
配置加密和持久化
使用 PostgreSQL 时,请注意 /home/node/.n8n
目录中的数据至关重要,包括用户数据和加密凭证。如果目录不存在,n8n 会自动创建,但原有凭证可能会失效。您可以通过传入 N8N_ENCRYPTION_KEY
环境变量来手动设置加密密钥。
第五步、设置时区
想要为 n8n 配置时区?可以使用如下命令:
docker run -it --rm
--name n8n
-p 5678:5678
-e GENERIC_TIMEZONE="Europe/Berlin"
-e TZ="Europe/Berlin"
-v n8n_data:/home/node/.n8n
docker.n8n.io/n8nio/n8n
这样,您就为计划触发器节点设定了时区。
第六步、更新 n8n
更新 n8n 也非常简单:
- 在 Docker Desktop 中,导航至 Images 选项卡、找到n8n、在鼠标点击后面的三个点,然后选择 Pull 下载最新的 n8n 镜像。
2. 或者,使用命令行获取最新版本:
# 拉取最新稳定版本
docker pull docker.n8n.io/n8nio/n8n
# 拉取特定版本
docker pull docker.n8n.io/n8nio/n8n:1.81.0
# 拉取测试版本
docker pull docker.n8n.io/n8nio/n8n:next
完成更新后,停止并重新启动 n8n 容器即可。
如果您是通过 Docker Compose 运行 n8n,更新步骤如下:
cd </path/to/your/compose/file/directory>
docker compose pull
docker compose down
docker compose up -d
总结
通过 Docker 安装和运行 n8n 除了可以享受简化的配置与高效的环境管理外,也让数据持久化与安全性得到了保障。无论是开发者还是企业用户,选择自托管 n8n 都是一个明智的选择。希望这篇指南能够帮助您快速上手,享受 n8n 带来的便利与强大功能!