「n8n を動かしてみたいが、どのコマンドを打てばいいか分からない」
Docker は使えるのに n8n の設定手順が分からなくて詰まっている——そういう人向けの記事です。
この記事を読み終えると、ブラウザで http://localhost:5678 を開いて n8n の管理画面を確認できます。所要時間の目安は 10〜15分です。
前提条件
- Docker または Docker Compose がインストール済みであること
- ターミナル(Mac / Linux)または PowerShell / WSL2(Windows)を使えること
著者について: n8n をセルフホスト環境(Docker)で実際に稼働させており、n8n ワークフロー(Webhook → Slack 通知・スケジュール自動化・Claude 連携)を本番運用中です。この記事では実際の設定経験をもとに手順を解説しています。
前提確認 — Docker が動いているか確認する
Docker のインストール確認
まず Docker が正しくインストールされているか確認します。ターミナルで以下を実行してください。
docker --version
docker compose version出力例:
Docker version 24.0.7, build afdd53b
Docker Compose version v2.23.3
バージョン番号が表示されればOKです。command not found が出る場合は Docker 公式サイト からインストールしてください。
WSL2(Windows)での注意点
Windows で Docker Desktop を使っている場合、WSL2 統合が有効になっているか確認してください。
Docker Desktop の設定 → Resources → WSL Integration で「Enable integration with my default WSL distro」をオンにします。WSL2 の Ubuntu ターミナルからも docker コマンドが使えるようになります。
PowerShell または Windows Terminal(WSL2)どちらからでも手順は同じです。
M1/M2 Mac でのアーキテクチャ指定
Apple Silicon(M1/M2/M3)の Mac では、一部の Docker イメージが linux/amd64 向けにビルドされているため、--platform フラグが必要な場合があります。n8n の公式イメージ(docker.n8n.io/n8nio/n8n)は ARM64 対応済みですが、動作しない場合は後述のコマンドに --platform linux/amd64 を追加してください。
docker run で n8n をすぐ起動する(最速)
基本コマンド
まずデータ永続化なしで「動くかどうか」を確認します。以下のコマンドを実行してください。
docker run -it --rm \
--name n8n \
-p 5678:5678 \
docker.n8n.io/n8nio/n8nオプションの説明:
-it: インタラクティブモード(ログが端末に表示される)--rm: コンテナ停止時に自動削除--name n8n: コンテナ名をn8nに設定-p 5678:5678: ホストの 5678 ポートをコンテナの 5678 ポートにマッピング
起動ログに Editor is now accessible via: http://localhost:5678 と表示されれば成功です。
ブラウザで localhost:5678 を開く
ブラウザを開いて http://localhost:5678 にアクセスしてください。n8n の初期設定画面(アカウント作成)が表示されます。
この方法の限界
--rm フラグを付けているため、コンテナを停止するとすべてのデータ(ワークフロー・設定)が消えます。動作確認ができたら、次の「Docker Compose で永続化した環境を作る」に進んでください。
Docker Compose で永続化した環境を作る(推奨)
本格的に使うには Docker Compose を使って永続化します。
docker-compose.yml の全設定(コピー可)
以下のファイルをプロジェクトの任意のフォルダに docker-compose.yml という名前で保存してください。
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=${N8N_HOST:-localhost}
- N8N_PORT=5678
- N8N_PROTOCOL=${N8N_PROTOCOL:-http}
- NODE_ENV=production
- WEBHOOK_URL=http://${N8N_HOST:-localhost}:5678/
- GENERIC_TIMEZONE=Asia/Tokyo
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:.env ファイルの設定項目一覧
同じフォルダに .env ファイルを作成して環境変数を管理します。
# n8n ホスト設定(ローカルなら localhost、VPS なら公開ドメインを設定)
N8N_HOST=localhost
N8N_PROTOCOL=http
# 本番 VPS の場合は以下を設定
# N8N_HOST=your-domain.com
# N8N_PROTOCOL=https主な環境変数一覧
| 変数名 | 説明 | デフォルト |
|---|---|---|
| N8N_HOST | n8n にアクセスするホスト名 | localhost |
| N8N_PORT | n8n のポート番号 | 5678 |
| N8N_PROTOCOL | HTTP / HTTPS の選択 | http |
| GENERIC_TIMEZONE | タイムゾーン設定 | UTC |
| WEBHOOK_URL | Webhook のベース URL | N8N_HOST に依存 |
docker compose up -d で起動・バックグラウンド実行
docker-compose.yml があるフォルダで以下を実行します。
docker compose up -d-d フラグでバックグラウンド実行になります。起動確認はログで行います。
docker logs n8n -fEditor is now accessible via: の行が出れば起動成功です。
データの保存場所(volume マウント先)
docker-compose.yml の volumes 設定で n8n_data という Docker ボリュームを作成しています。
- ワークフローデータ、認証情報、設定が
/home/node/.n8nに保存されます docker compose downしてもボリュームは残るためデータは消えませんdocker compose down -vを実行するとボリュームも削除されるので注意してください
起動確認と初期設定
ブラウザで管理画面を開く
ブラウザで http://localhost:5678 を開きます。初回起動時は「Set up owner account」の画面が表示されます。
管理者アカウントの作成
以下の項目を入力してアカウントを作成します。
- First name / Last name: 任意の名前
- Email: ログイン用メールアドレス
- Password: ログイン用パスワード(8文字以上)
「Next」を押して進むと n8n の管理画面(Workflow 一覧)が表示されます。
タイムゾーンの設定(日本 = Asia/Tokyo)
docker-compose.yml 内で GENERIC_TIMEZONE=Asia/Tokyo を設定していますが、管理画面からも変更できます。
Settings(左サイドバー) → General → Timezone で「Tokyo」を選択してください。スケジュール実行(Cron ノード)の時刻がタイムゾーンに合わせて動作します。
THINK YOU LAB での実運用例
ローカルから本番 VPS への移行時に変えた設定
ローカル開発から本番 VPS に移行した際に変更した設定の差分です。
| 設定項目 | ローカル開発 | 本番 VPS |
|---|---|---|
| N8N_HOST | localhost | 公開ドメイン(例: n8n.your-domain.com) |
| N8N_PROTOCOL | http | https |
| WEBHOOK_URL | http://localhost:5678/ | https://n8n.your-domain.com/ |
| リバースプロキシ | 不要 | nginx または Caddy で HTTPS 終端 |
ローカル開発と本番で docker-compose.yml を使い分ける方法
docker-compose.yml(共通設定)と docker-compose.override.yml(環境別設定)を分けることで、ローカルと本番の設定を管理します。
# docker-compose.override.yml(ローカル開発用)
services:
n8n:
environment:
- N8N_HOST=localhost
- N8N_PROTOCOL=http本番では docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d のように本番用の設定ファイルを明示的に指定します。
よくあるトラブルと対処法
ポートが使用中(5678 競合)
症状: docker compose up -d を実行すると「Bind for 0.0.0.0:5678 failed: port is already allocated」が出る
対処: 5678 ポートが別のプロセスに使われています。以下で確認して止めるか、n8n のポートを変更します。
# Mac / Linux: 5678 ポートを使用しているプロセスを確認
lsof -i :5678
# ポートを変更する場合(docker-compose.yml の ports 設定を変更)
ports:
- "5679:5678" # ホスト側を 5679 に変更コンテナが起動しない(ログ確認 docker logs)
症状: docker compose up -d の後にブラウザで http://localhost:5678 が開けない
対処: ログでエラーを確認します。
docker logs n8n
# または
docker logs n8n --tail 50よくある原因:
- 権限エラー(volume の所有者が
nodeユーザーでない):docker volume rm n8n_dataで削除して再作成 - 環境変数の書き方ミス(
.envのスペースや引用符の問題)
M1 Mac で exec format error が出る
症状: コンテナ起動時に exec format error が出る
対処: docker-compose.yml に platform を追加します。
services:
n8n:
image: docker.n8n.io/n8nio/n8n
platform: linux/amd64 # これを追加ただし linux/amd64 を M1 Mac でエミュレーションするため動作が遅くなります。可能なら linux/arm64 イメージの利用を検討してください(n8n 公式は ARM64 対応済み)。
次のステップ
http://localhost:5678 で n8n が起動できたら、次はワークフローを作ってみましょう。
関連記事
FAQ
Q1. Docker Compose v1(docker-compose)と v2(docker compose)どちらを使うべきですか?
v2(docker compose)を推奨します。Docker Desktop には v2 が同梱されています。v1 はコミュニティによる保守のみで非推奨となっています。
Q2. データのバックアップはどうすればいいですか?
n8n_data ボリュームを定期的に保存してください。docker run --rm --volumes-from n8n -v $(pwd):/backup busybox tar cvf /backup/n8n-backup.tar /home/node/.n8n でバックアップを取れます。
Q3. n8n のバージョンを更新するにはどうすればいいですか?
docker compose pull && docker compose up -d を実行すると最新イメージに更新されます。更新前にデータのバックアップを必ず取ってください。
Q4. VPS(本番環境)での HTTPS 設定はどうすればいいですか? nginx または Caddy をリバースプロキシとして設置して HTTPS を終端させます。Caddy の場合は自動的に Let's Encrypt 証明書を取得します。
「セットアップできたけど最初のWFが作れない」という状況を防ぐために、n8n 入門 WF セット(JSON3本)を LINE で無料配布中です。Docker ローカル環境にそのままインポートできます。
→ n8n 入門 WF セット(JSON3本)を受け取る(LINE登録・無料)
LINE 公式アカウント
n8n Docker セットアップの補足Tips・docker-compose.ymlテンプレをLINEで配布中