この記事では、Windows / PowerShell 環境で n8n を Docker で動かす手順をまとめます。
初めての方でも5分以内に動かせるように、日本語のエラー対処も添えています。
🚀 n8nとは?
n8n
は、ノーコード/ローコードでワークフロー自動化を構築できるオープンソースツールです。
ブラウザ上で各種SaaSやAPIを連携でき、Zapier のように柔軟な自動化が可能です。
🧩 前提環境
Windows 10 / 11
PowerShell
Docker Desktop
管理者権限(推奨)
Docker が未導入なら以下でOK:
winget install -e --id Docker.DockerDesktop
インストール後に再起動 →
PowerShellで docker --version が通ればOKです。
🔧 手順概要
Docker Desktop を起動
n8n 用データフォルダを作成
コンテナを起動(ポート 5678)
ブラウザでアクセス
🗂️ ステップ1:データフォルダ作成
データ永続化のために、ローカルフォルダを作ります。
New-Item -ItemType Directory -Force "D:\AI\n8n.n8n"
このフォルダに n8n のワークフロー設定が保存されるので、コンテナを消しても内容は残ります。
🐋 ステップ2:Dockerで起動(最小構成)
docker run -d --rm --name n8n -p 5678:5678
-v "D:\AI\n8n.n8n:/home/node/.n8n" -e TZ=Asia/Tokyo
docker.n8n.io/n8nio/n8n
🌐 ステップ3:ブラウザでアクセス
ブラウザでアクセス:
http://localhost:5678
初期セットアップ画面が表示されれば成功です。
docker stop n8n
docker ps --filter name=n8n
docker logs -f n8n
🔐 Basic認証を安全に設定する
n8nはWeb UIを持つため、認証設定は必須です。
ただし、パスワードは記事に書かず、.env ファイルで管理しましょう。
1️⃣ .env ファイルを作成
例: D:\AI\n8n.env
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=<自分のユーザー名>
N8N_BASIC_AUTH_PASSWORD=<安全なパスワード>
TZ=Asia/Tokyo
2️⃣ .env を読み込んで起動
Get-Content "D:\AI\n8n.env" | ForEach-Object {
if ($_ -match '^\s*#') { return }
$k,$v = $_.Split('=',2)
if ($k -and $v) { [System.Environment]::SetEnvironmentVariable($k.Trim(), $v.Trim(), "Process") }
}
docker run -d --rm --name n8n -p 5678:5678
-v "D:\AI\n8n.n8n:/home/node/.n8n" -e N8N_BASIC_AUTH_ACTIVE=$env:N8N_BASIC_AUTH_ACTIVE
-e N8N_BASIC_AUTH_USER=$env:N8N_BASIC_AUTH_USER -e N8N_BASIC_AUTH_PASSWORD=$env:N8N_BASIC_AUTH_PASSWORD
-e TZ=$env:TZ `
docker.n8n.io/n8nio/n8n
.env ファイルは Git に上げないように .gitignore に追加しておきましょう。
⚠️ よくあるエラーと解決策
エラー内容 意味 解決策
'docker' はコマンドとして認識されません Docker が未インストール/PATH 未設定 Docker Desktop を起動し、PowerShell を再起動。もしくはフルパスで実行: & 'C:\Program
Files\Docker\Docker\resources\bin\docker.exe' --version
error getting credentials - exec: "docker-credential-desktop" 認証ヘルパーが見つからない Docker Desktop を起動し直す。再起動 or PowerShell 再実行。
port 5678 already in use ポート競合 外部ポート変更:-p 5679:5678 にして http://localhost:5679
でアクセス。
🧰 npmで動かす方法(代替)
Docker を使いたくない場合はこちら。
winget install -e --id OpenJS.NodeJS.LTS
npm install -g n8n
n8n start
データは %USERPROFILE%.n8n に保存されます。
🤖 Codex連携(自動構築支援)
Codex はターミナル上で動く オープンソースのコーディングアシスタント。
「Dockerでn8nを起動して」と伝えるだけで、インストール~起動~確認まで自動化できます。
🧠 メリット
再現性:実行コマンドが記録される
安全性:重要操作は承認を求める
学習性:Plan(手順計画)が自動生成される
💻 代表コマンド例
winget install -e --id Docker.DockerDesktop
& 'C:\Program Files\Docker\Docker\Docker Desktop.exe'
New-Item -ItemType Directory -Force "D:\AI\n8n.n8n"
docker run -d --rm --name n8n -p 5678:5678 -v "D:\AI\n8n.n8n:/home/node/.n8n" -e TZ=Asia/Tokyo docker.n8n.io/n8nio/n8n
docker ps --filter name=n8n
docker stop n8n
🧭 まとめ
n8n は Docker で簡単に動かせる強力な自動化ツール
.env で認証情報を安全に管理
CodexやAI支援で再現性・効率性を向上
永続化フォルダで設定が消えない