n8nをDockerで更新したらデータや認証情報が消える原因と対策

広告を含みます。料金、仕様、キャンペーンは公式ページで確認してください。

n8nをDockerで更新・再起動したあとに「データが消えた」「registration pageへ戻った」「Credentialが復号できない」となった時は、記事を読む人が一番焦るところです。

ただし、最初にやるべきことは「消えた」と決めることではありません。まず、今のコンテナがどのvolume、どのDB、どのN8N_ENCRYPTION_KEYを見ているかを確認します。SNS調査でも、ここがn8n self-hostingの強いペインとして繰り返し出てきました。

結論: n8nの復元はDB、volume、.env、暗号化キーをセットで見る

n8n公式Docsでは、Docker Compose構成でn8n_data:/home/node/.n8nを使い、この場所にSQLite DBや暗号化キーが保存されると説明されています。つまり、更新後に違うvolumeを見れば空に見えますし、DBが残っても暗号化キーが違えばCredentialは読めません。

避けたいこと: 新規登録して、そのまま本番運用を再開する

初回登録画面が出た状態で慌てて進めると、旧データの位置確認が後回しになります。まず停止、退避、volume/DB/key確認、復元テスト、Webhook確認の順に進めます。

まず結論

症状まず疑う場所確認するもの避けたい判断
Docker更新後に初回登録画面へ戻る別のDB/volumeを見ている可能性n8n_data/home/node/.n8ndatabase.sqlite、composeのvolume名すぐに新規登録して上書き運用を始めること
Workflowは見えるがCredentialが復号できないN8N_ENCRYPTION_KEYの不一致.env、settings、旧環境の~/.n8n、worker側の環境変数Credentialだけ手で入れ直せば終わり、と扱うこと
再起動するたびに古い状態へ戻るSQLite/volumeの参照ズレdocker volume ls、Mountpoint、コンテナ内のDBタイムスタンプログにエラーがないから正常、と決めること
Webhook URLや実行履歴が戻らない復元対象不足DB、volume、compose、.env、暗号化キー、外部接続先メモworkflow exportだけをバックアップ扱いにすること
n8nをVPSで動かすなら、更新前に戻せる構成まで決める

料金だけで選ぶより、Docker volume、DB、バックアップ、監視、復元手順を残しやすいVPSを選ぶ方が、あとで効きます。

ConoHa VPSを確認する

消えたように見える時にまず見るもの

n8nのDocker更新で怖いのは、原因がひとつに見えないことです。volumeが違う、DBが違う、暗号化キーが違う、Webhook URLが変わる、どれでも「壊れた」ように見えます。

見る順番確認ポイントなぜ重要かメモ
1. 現在のvolumedocker inspectdocker volume inspectで、実際のMountpointを確認するcomposeファイルを直したつもりでも、別volumeで起動していると新規環境のように見えます。更新前後でvolume名が変わっていないかを見る
2. DBファイル/home/node/.n8n/database.sqliteまたはPostgreSQLのDBを確認するn8nのWorkflow、Credential、実行履歴の多くはDB側にいます。SQLiteならタイムスタンプ、PostgreSQLならdump/接続先も確認
3. 暗号化キーN8N_ENCRYPTION_KEYまたは~/.n8nの設定を確認するDBが戻っても、暗号化キーが違うとCredentialが読めません。queue modeならworkerにも同じキーが必要
4. composeと.envdocker-compose.ymlcompose.yaml.envの差分を見るWEBHOOK_URL、timezone、volume名、DB接続先が変わると挙動も変わります。更新前のファイルを必ず残す
5. 外部到達と監視Webhook、HTTPS、通知先、Error workflow、実行履歴を確認する起動していても、自動化が本当に復帰したとは限りません。Uptime Kumaや外部監視へつなぐ

バックアップで残すもの

workflow exportは大切ですが、それだけではn8nの本番環境は戻りません。Credential、実行履歴、Webhook、暗号化キー、DB、composeを別物として見ます。

残すもの含まれるもの復元時に困る例扱い方
n8n_data volumeSQLite DB、settings、暗号化キーが入る構成が多いvolume名を変えて起動し、空のn8nに見えるvolume名とMountpointを記録し、更新前にsnapshotを取る
PostgreSQL DBWorkflow、Credential、実行履歴などDBだけ古い、または別DBへ接続しているdump、接続先、ユーザー、DB名をセットで残す
.envドメイン、timezone、DB接続、暗号化キー、Webhook URLWEBHOOK_URLが変わり、連携先のURLを直す羽目になるパスワードを含むため、公開せず安全な場所へ保管する
docker-compose.ymlimage、ports、volumes、networks、restart設定更新後に別volumeや別networkで起動する更新前後の差分を残す
Workflow export処理の形、ノード構成Credential、Webhook、環境変数、実行履歴までは戻らない補助バックアップとして使い、DB/volumeの代わりにしない
復元手順メモ停止、退避、起動、確認、ロールバックの順番障害時に何から戻すか分からない小さな検証環境で一度戻しておく

N8N_ENCRYPTION_KEYはどこで効くか

n8n公式Docsでは、初回起動時にランダムな暗号化キーを作り、Credential保存前の暗号化に使うと説明されています。復元時の「Credentialが読めない」は、ここがズレた時に起きやすいです。

場面N8N_ENCRYPTION_KEYで起きること確認する場所判断
初回起動n8nは初回起動時に暗号化キーを作り、Credential暗号化に使います。~/.n8n、settings、または.env本番では明示的に固定し、バックアップ対象に入れる
Docker更新DBは残っていても、キーが変わるとCredentialを復号できません。N8N_ENCRYPTION_KEY、旧volume、旧設定Workflowが見えるだけでは復旧完了にしない
queue modeworkerごとにキーが違うと、実行時にCredentialで詰まります。main、worker、環境変数、secret管理全workerへ同じキーを渡す
移行/復元DB、volume、暗号化キーがそろって初めてCredential復旧の可能性が高まります。移行元と移行先の.env、DB、volumeキーだけ、DBだけ、workflow exportだけでは不十分

更新前にやる順番

1停止する

更新前にn8nを止め、現在のcompose、.env、volume、DB名を記録します。

2退避する

volume snapshot、DB dump、.env、compose、暗号化キーを同じ日付で残します。

3更新する

imageだけでなく、volume名、DB接続先、WEBHOOK_URLが変わっていないか見ます。

4確認する

ログイン、Workflow、Credentialテスト、Webhook外部到達、Error workflowを確認します。

5監視する

HTTP 200だけでなく本文エラー、失敗通知、実行履歴、外部監視へつなげます。

/healthが200でも復旧完了ではない

後続Waveでは、/health が200でもWebhookや依存先まで戻っているとは限らない、というペインが強く出ました。n8nの復旧確認は「起動しているか」だけで終わらせず、DB、Credential、Workflow実行、Webhook、通知まで層に分けて見ます。

レイヤー200や起動確認だけで見落とすこと確認するもの復旧完了の目安
コンテナn8nコンテナが起動していても、別volumeや別DBを見ていることがあります。docker ps、container logs、compose、volume名更新前と同じvolume/DBへ接続している
DB画面が開いても、Workflowや実行履歴が旧状態・空状態のことがあります。SQLite/PostgreSQL、DB名、dump、タイムスタンプ更新前のWorkflow、実行履歴、設定が見える
CredentialWorkflowが見えても、暗号化キーが違うとCredentialは使えません。N8N_ENCRYPTION_KEY、worker環境変数、Credential test主要Credentialの接続テストが通る
Webhook/health が200でも、WebhookのDNS、HTTPS、外部到達、URL変更は別問題です。WEBHOOK_URL、DNS、TLS、reverse proxy、外部からのPOST外部サービスから本番Webhookへ到達する
Workflow実行手動実行は成功しても、Cron、queue、依存API、権限で失敗することがあります。実行履歴、Error workflow、retry、外部API応答本番に近い入力で成功し、失敗通知も動く
通知エラーは起きていても、メールだけ、同じVPS内だけだと気づけないことがあります。Discord/Slack/メール、外部監視、通知テスト障害時にも見る場所へ通知が届く

VPSは料金だけでなく復元しやすさで選ぶ

n8nを自宅PCや一時検証で動かすだけなら、細かい復元手順を後回しにしがちです。本番Webhookや顧客連携を置くなら、VPS選定時点でバックアップ、監視、通知、DBの場所を決めておきます。

用途見るポイント候補選ぶ理由
n8nを小さく検証して本番へ育てるDocker、HTTPS、バックアップ、監視、プラン変更ConoHa VPS自動化やAI系の検証を小さく始め、必要に応じて構成を見直しやすい候補です。
Docker/DB/Webhookを自分で組むvolume、SSH、snapshot、内部リンク先の記事との組み合わせXServer VPSDocker、Webhook、PostgreSQL、監視まで自分で設計する読者に合わせやすい候補です。
Linux運用を丁寧に詰めるcompose管理、バックアップ、国内リージョン、運用メモさくらのVPSサーバー運用を自分で管理しながら、復元手順まで整えたい人の比較対象になります。
ConoHa VPS

n8n、Dify、AIエージェントなどをVPS上で動かす導線をまとめて考えやすい候補です。

ConoHa VPSを確認する
XServer VPS

VPS、Docker、DB、Webhookを自分で組み合わせ、内部リンク先の記事群とも相性がよい候補です。

XServer VPSを確認する
さくらのVPS

compose、volume、バックアップ、監視を自分で設計したい人向けに比較対象へ入れたい候補です。

さくらのVPSを確認する

FAQ

質問答え
Docker更新後にregistration pageへ戻ったらデータは消えていますか?すぐに消えたと決めず、まず別volumeや別DBを見ていないか確認します。n8n公式のDocker Compose例でもn8n_data:/home/node/.n8nが重要です。
Workflowは残っているのにCredentialが復号できない時は?N8N_ENCRYPTION_KEYの不一致を疑います。DBが残っていても、暗号化キーが違うとCredentialは読めません。
workflow exportだけ残しておけば復元できますか?処理の形は戻しやすいですが、Credential、実行履歴、Webhook URL、環境変数、DBまでは別です。DB/volume/.env/composeをセットで見ます。
SQLiteとPostgreSQLではどちらが安全ですか?小規模ならSQLiteでも始められますが、復元と監視を考えるならDBの場所、dump、接続先、バックアップ手順を明確にできる構成が重要です。
復元できたかどうかは何で確認しますか?ログイン、Workflow表示、Credentialテスト、Webhook外部到達、Error workflow、実行履歴、通知先まで見ます。n8nが起動しただけでは完了にしません。
/healthが200なら復旧完了ですか?完了ではありません。コンテナの起動確認と、DB、Credential、Webhook、Workflow実行、通知到達は別レイヤーです。特にWebhook DNS failureやCredential復号不能は、/healthだけでは拾えないことがあります。

参照した公開情報

この記事では、SNS調査で拾った実ペインを本文の入口にし、公式Docsとn8n Communityの事例で技術的な確認点を補強しています。

確認日: 2026年6月30日。SNS側Priority A調査で収集された、Docker更新後のregistration page、データ消失に見える症状、Credential復号不能、N8N_ENCRYPTION_KEY、volume参照ズレを本文へ反映。公式仕様はn8n Docs、実ペインはn8n CommunityおよびX/Reddit/SNS調査ログを、validated / needs_date / needs_url / hypothesisで分類して扱っています。