n8n Docker 安裝教學:從零開始的完整指南(2026)
手把手教你用 Docker 安裝 n8n 自動化工具。從 Docker Desktop 安裝到 docker-compose + PostgreSQL 正式部署,附完整設定檔可直接複製使用。
n8n Docker 安裝教學:從零開始的完整指南(2026)
n8n 是一個開源的自動化工具,可以幫你把重複的工作串起來自動跑。這篇教你怎麼用 Docker 把 n8n 裝起來,從「什麼都沒有」到「可以正式用」,一步一步帶你做。
Docker 是什麼?白話版
白話版:Docker 就是一個「盒子」,你把軟體放進去,它就能在任何電腦上跑,不會跟你電腦上的其他東西打架。
你不需要搞懂 Docker 的所有細節,只要知道:
- 不會弄亂你的電腦 — n8n 跑在盒子裡,刪掉盒子就乾淨了
- 搬家很方便 — 換電腦或換主機,整個盒子搬過去就好
- 大家的環境都一樣 — 不會出現「我的電腦可以跑,你的不行」的問題
事前準備
在開始之前,確認你有這些東西:
| 項目 | 說明 |
|---|---|
| 電腦 | Windows 10/11、macOS 或 Linux 都可以 |
| 記憶體 | 至少 4GB(建議 8GB) |
| 硬碟空間 | 至少 2GB |
| 網路 | 需要連網下載 Docker 映像檔 |
Step 1:安裝 Docker Desktop
Windows
- 到 Docker Desktop 官網 下載 Windows 版
- 執行安裝檔,一路按「Next」
- 安裝完成後重新開機
- 打開 Docker Desktop,等左下角出現綠色的「Engine running」就好了
如果跳出「WSL 2 installation is incomplete」的訊息,照著畫面的連結更新 WSL 2 就好。
macOS
- 到 Docker Desktop 官網 下載 macOS 版
- 打開
.dmg檔,把 Docker 拖到 Applications - 打開 Docker,系統會問你要不要授權,按「OK」
- 等上方工具列的鯨魚圖示不再動了,就代表跑起來了
Linux(Ubuntu/Debian)
Linux 不用裝 Docker Desktop,直接用指令裝 Docker Engine:
# 更新套件
sudo apt update
# 安裝必要的套件
sudo apt install -y ca-certificates curl gnupg
# 加入 Docker 官方金鑰
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 加入 Docker 套件庫
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安裝 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 讓你的帳號可以不用 sudo 跑 Docker
sudo usermod -aG docker $USER
裝完後登出再登入,跑一下 docker --version 確認有裝好。
Step 2:用 docker run 快速啟動(試玩用)
如果你只是想先試試看 n8n 長什麼樣子,跑這一行就好:
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
跑起來之後,打開瀏覽器輸入 http://localhost:5678,就能看到 n8n 了。
這個方法是「試玩版」,關掉終端機 n8n 就停了。正式用請看下面的 docker-compose 方式。
Step 3:用 docker-compose 正式部署(推薦)
正式用 n8n,建議搭配 PostgreSQL 資料庫。白話版:SQLite(預設)像是把東西寫在便條紙上,PostgreSQL 像是用保險箱存放 — 更安全、更穩定。
3.1 建立資料夾
mkdir n8n-docker && cd n8n-docker
3.2 建立 .env 檔案
# .env
# PostgreSQL 設定(請改成你自己的密碼)
POSTGRES_USER=n8n
POSTGRES_PASSWORD=這裡換成你的密碼
POSTGRES_DB=n8n
# n8n 設定
N8N_ENCRYPTION_KEY=這裡換成一串隨機字串
WEBHOOK_URL=http://localhost:5678/
GENERIC_TIMEZONE=Asia/Taipei
TZ=Asia/Taipei
N8N_ENCRYPTION_KEY很重要!n8n 用這個來加密你的帳號密碼。怎麼產生隨機字串?跑這個:openssl rand -hex 32
3.3 建立 docker-compose.yml
把下面這整段複製到 docker-compose.yml:
# docker-compose.yml — n8n + PostgreSQL 正式部署
# 最後更新:2026-03
version: "3.8"
services:
postgres:
image: postgres:16
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: ${POSTGRES_DB}
DB_POSTGRESDB_USER: ${POSTGRES_USER}
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
WEBHOOK_URL: ${WEBHOOK_URL}
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE}
TZ: ${TZ}
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
n8n_data:
3.4 啟動
docker compose up -d
等個 30 秒左右,打開 http://localhost:5678,你應該會看到 n8n 的設定畫面。
3.5 確認有跑起來
docker compose ps
兩個服務(postgres 和 n8n)都要顯示 Up 或 running,這樣就對了。
環境變數說明
| 變數 | 幹嘛用的 | 重要程度 |
|---|---|---|
N8N_ENCRYPTION_KEY | 加密你存在 n8n 裡的帳號密碼。弄丟了就所有密碼都要重新設定 | 超級重要 |
WEBHOOK_URL | 告訴 n8n 外面的人要用哪個網址來觸發 Webhook | 重要 |
DB_TYPE | 資料庫類型。用 PostgreSQL 的話填 postgresdb(不是 postgres,很多人搞錯) | 重要 |
DB_POSTGRESDB_HOST | 資料庫的位置。用 docker-compose 的話填服務名稱 postgres(不是 localhost) | 重要 |
GENERIC_TIMEZONE | 時區。台灣填 Asia/Taipei | 建議設 |
N8N_PROTOCOL | 用 HTTPS 的話要設成 https | 有 HTTPS 時設 |
N8N_HOST | 你的網域名稱,例如 n8n.yourdomain.com | 有網域時設 |
完整的環境變數清單可以看 n8n 官方文件。
安裝好之後,3 件一定要做的事
1. 備份你的 N8N_ENCRYPTION_KEY
把 .env 裡面的 N8N_ENCRYPTION_KEY 複製到安全的地方(密碼管理器、紙條鎖抽屜裡都好)。
為什麼?因為 n8n 用這個金鑰加密你的所有第三方帳號密碼(Gmail、Google Sheets、Slack…)。金鑰弄丟了 = 所有密碼要重新設定。
2. 設定正確的 WEBHOOK_URL
如果你之後要讓外面的服務呼叫你的 n8n(例如表單送出後觸發 workflow),WEBHOOK_URL 要設成你的對外網址,不能用 localhost。
# .env 裡面改成你的網域
WEBHOOK_URL=https://n8n.yourdomain.com/
3. 建立管理員帳號
第一次打開 n8n 會要你建立帳號。這個帳號就是管理員,請用一個你記得住的 email 和夠強的密碼。
常見錯誤與解決方法
❌ 錯誤:port 5678 already in use
有別的程式佔了 5678 port。改 docker-compose.yml 的 ports:
ports:
- "5679:5678" # 改用 5679
然後改用 http://localhost:5679 打開。
❌ 錯誤:n8n 一直重啟(restart loop)
通常是資料庫連不上。檢查兩件事:
DB_POSTGRESDB_HOST是不是寫成postgres(服務名稱),不是localhostDB_TYPE是不是寫成postgresdb(不是postgres)
看 log 找原因:
docker compose logs n8n
❌ 錯誤:credentials 全部消失
通常是 N8N_ENCRYPTION_KEY 變了。如果你之前沒有手動設定這個值,n8n 會自動產生一個存在 volume 裡。重新建立容器如果 volume 不見了,金鑰也跟著不見。
解法:永遠在 .env 裡明確設定 N8N_ENCRYPTION_KEY。
❌ 錯誤:Permission denied
n8n 容器裡用的是 node 使用者(UID 1000)。如果你掛載本機目錄而不是 Docker volume,要確保資料夾權限正確:
sudo chown -R 1000:1000 ./n8n-data
更新 n8n 版本
n8n 幾乎每週都出新版。更新步驟:
# 1. 先備份(很重要)
docker compose exec n8n n8n export:workflow --all --output=/home/node/.n8n/backup-workflows.json
docker compose exec n8n n8n export:credentials --all --output=/home/node/.n8n/backup-credentials.json
# 2. 拉新的映像檔
docker compose pull n8n
# 3. 重啟
docker compose up -d
n8n 啟動時會自動跑資料庫 migration,不用手動處理。
更完整的備份和更新 SOP,看這篇:n8n 備份與更新 SOP
下一步
裝好 n8n 之後,接下來可以看:
- n8n 介面完全導覽:繁體中文圖解版 — 搞懂畫面上每個按鈕在幹嘛
- n8n 第一個自動化工作流 — 做一個表單 → Gmail → Google Sheet 的自動化
- n8n HTTPS 設定教學 — 把 n8n 放到正式網域上,加上 SSL 憑證
- n8n 完整入門指南 — 從安裝到第一個自動化的完整地圖
不想自己裝?
實話說,自己裝 n8n 需要搞 Docker、資料庫、SSL、備份… 如果你只想專心做自動化,不想管這些基礎建設:
我們幫你架好,直接用 >> n8nstart.cc/hosting
已經幫你設定好 PostgreSQL、HTTPS、自動備份、自動更新。你只要打開瀏覽器,開始拉 workflow 就好。
本文最後更新:2026-03-19 | n8n 版本:1.82+ 有問題?到 n8n 官方社群 或 N8NMarket 粉專 問我們。