初心者向け
n8nをDockerで動かす
n8n を Docker で動かす手順を、公式のコマンドで実際に起動して確かめました(n8n 2.42.6、Docker Desktop、Windows 11)。ボリュームがあるときと、ないときで、再起動・作り直し・docker compose down -v のたびに、データが残るかを試した結果、同じポートを使うときのエラー、公式の説明が古い扱いになっていて Compose を勧めていること、確認していないことまで書きました。
公開
動作確認: — n8n 2.42.6(Docker の公式イメージ n8nio/n8n の latest) / Docker Desktop 29.8.0(Windows 11 Home)
n8n を、自分のパソコンやサーバーで動かす方法の1つが、Docker です。この記事は、公式のコマンドで、実際に n8n を起動して、動いたこと、データが残るか、つまずく点を確かめた記録です。
先に結論です。
- 公式のコマンド(
docker volume createとdocker run)で、n8n 2.42.6 が、起動して25秒後には動いていました。ブラウザでhttp://localhost:5678を開くと、最初に、管理者のアカウントを作る画面が出ます - ボリューム(データの置き場所)をつながないと、コンテナを作り直したときに、データが消えます。 再起動では消えません。筆者は、両方を試しました
- 公式の Docker のページは、「古い」扱いで、Docker Compose のページを勧めています。そちらは、n8n 以外のサービスも含む、大きめの構成でした(筆者は、実行していません)
- 筆者は、最小の Compose の設定ファイルも作って、起動、停止、データの残り方を確かめました
先に用意するもの
- Docker(Docker Desktop など)が、動いていること。筆者は、Windows 11 の Docker Desktop(29.8.0)で確かめました
- ポート 5678 が空いていること。 筆者の場合は、別の n8n が同じポートを使っていたので、先に止めました
docker run で起動する(公式の手順)
n8n の公式ドキュメント「Docker」に、次のコマンドが載っています(2026年10月10日に確認)。
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \
-e TZ="<YOUR_TIMEZONE>" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
-p 5678:5678:自分のパソコンのポート 5678 で、n8n を開くGENERIC_TIMEZONEとTZ:時間の設定。日本ならAsia/Tokyo。設定しないと、n8n の時刻がずれることがあります(VPS で設定せずに動かしたときの記録)-v n8n_data:/home/node/.n8n:データを、n8n_dataというボリュームに保存する
公式の例は、-it --rm で、手元の画面に出しながら動かし、止めるとコンテナを消す形です。筆者は、裏で動かし続けたかったので、-it --rm を、-d(バックグラウンド)に替えて、次のように実行しました(筆者の PowerShell では、1行にまとめました)。
docker volume create n8n_data
docker run -d --name n8n -p 5678:5678 -e GENERIC_TIMEZONE="Asia/Tokyo" -e TZ="Asia/Tokyo" -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true -v n8n_data:/home/node/.n8n n8nio/n8n
結果は、次のとおりです。
| 確かめたこと | 結果 |
|---|---|
イメージの取得(docker pull n8nio/n8n) |
取得できた。ディスク上の大きさは、約 1.79GB(docker images の表示) |
| 起動して、25秒後 | http://localhost:5678/healthz が {"status":"ok"} と返した |
| n8n のバージョン | 2.42.6(docker exec n8n n8n --version) |
| コンテナの中の時刻 | 日本時間(TZ が効いている) |
| ブラウザで開く | 「Set up owner account」(管理者のアカウントを作る)画面が出た |

docker ps の表示は、0.0.0.0:5678->5678/tcp でした。0.0.0.0 は、同じネットワークの他の機器からも、つながる設定です。サーバーで動かすときは、外に開いてよいかを、必ず考えてください(VPS で、開けたポートの確認)。
データは残るのか:ボリュームの有無で試した
「作り直したら、設定が消えた」という失敗は、起こりやすいところです。管理者のアカウントを作ったあとに、次の操作をして、また画面を開くと、アカウントの作成画面(最初の画面)が出るかを、確かめました。出れば、データが消えた、ということです。
| 操作 | ボリュームあり | ボリュームなし |
|---|---|---|
| コンテナを作る | 最初の画面が出る | 最初の画面が出る |
| 管理者のアカウントを作る | 作れた | 作れた |
再起動(docker restart) |
(試していない) | データは残った |
コンテナを消して、作り直す(docker rm -f のあと docker run) |
データは残った(最初の画面は出ない) | データは消えた(最初の画面が、また出た) |
つまり、ボリュームがないと、再起動では残りますが、コンテナを作り直すと消えます。 n8n を更新するときは、コンテナを作り直すので、ボリュームがないと、更新のたびにデータが消えます。公式の例が、最初に docker volume create n8n_data をするのは、このためだと、筆者は読みました。
ポートが使われているとき
すでに、ポート 5678 を使っているもの(別の n8n など)があるときに、同じポートで起動すると、次のエラーになります。
Bind for 0.0.0.0:5678 failed: port is already allocated
対処は、使っているものを止めるか、別のポートにする(-p 5679:5678 のように、左側の数字を変える)ことです。筆者も、試験で 5679:5678 にして、別の n8n を動かしました。別のポートにしたときは、ブラウザで開く番号も、変わります(http://localhost:5679)。
Docker Compose で動かす
公式の Docker のページは、「古い」扱いで、Docker Compose のページを勧めています。筆者が読んだ範囲では、その Compose の構成は、n8n のほかに、サンドボックスや検索サービスなどの別のサービスを含み、.env ファイルに、多くの値(認証トークンなど)を入れる形でした(ページの要約を読んだだけで、構成の全文は読んでいません。筆者は、この公式の Compose を、実行していません)。
そこで、n8n だけの、最小の Compose の設定を、筆者が作って、試しました。これは公式のものではなく、筆者の構成です。
services:
n8n:
image: n8nio/n8n:2.42.6
restart: unless-stopped
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Tokyo
- TZ=Asia/Tokyo
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
imageの末尾にバージョンを書いて固定しています(:2.42.6)。書かないと、latest(そのときの最新)になりますrestart: unless-stopped:パソコンやサーバーの再起動のあとに、自動で立ち上がる設定。筆者は、この自動の再起動までは、試していません
次のコマンドで、動かしました。
docker compose up -d # 起動
docker compose down # 止めて、コンテナを消す(ボリュームは残る)
docker compose down -v # ボリュームも消す
| 操作 | 結果 |
|---|---|
docker compose up -d |
約24秒後に、healthz が ok。最初の画面が出た |
管理者のアカウントを作って、down のあとに up -d |
データは残った |
down -v のあとに up -d |
データは消えた(最初の画面が、また出た) |
後片づけ
試したあとは、次で消しました(試し用の n8n なので、データは不要でした)。
docker compose down -v
docker volume rm n8n_data
イメージ(約 1.79GB)は、残っています。要らなければ、docker rmi n8nio/n8n で消せます。
確認していないこと
- 管理者のアカウントは、画面の入力ではなく、n8n の API(
/rest/owner/setup)で作りました。 データが残るかの確認には、これで足りますが、画面からの作成は、筆者の試験では行っていません - 更新の手順(新しいバージョンのイメージに替えて、同じボリュームで起動し直す)は、試していません。公式のページには、
docker pull n8nio/n8nのあとに、止めて、消して、起動し直す、と書かれています - 公式の Docker Compose の構成は、実行していません。ページの要約を読んだだけです
- Docker Desktop(Windows)だけで確かめました。Linux のサーバーや、Mac での動きは、確かめていません
- 外に公開するときの、HTTPS、リバースプロキシ、
WEBHOOK_URLの設定は、試していません - Postgres などの外部のデータベースを使う構成は、試していません。筆者の試験は、n8n の標準のデータベース(SQLite)です
restart: unless-stoppedで、パソコンの再起動のあとに自動で立ち上がるかは、試していません- n8n と Docker のバージョンは、2026年10月10日のものです。このサイトの他の記事は、n8n 2.36.8(npm で入れたもの)で確かめています
次に読む
- 動かす場所を選ぶところから読むなら n8nはどこで動かすか
- VPS に入れる手順は ConoHa VPSにn8nを入れる
- 時間がずれる設定の話は n8n セルフホストのデータと時刻
- 料金の中身は n8nの料金と実際の費用