このページでは、Docker 環境でセルフホスティングしている n8n を安全にアップデートする手順を解説します。n8n は自動アップデートされないため、定期的にご自身で更新が必要です。
前提:本記事の操作は、「n8nセルフホスティング完全ガイド」で構築した環境(Docker Compose/ボリューム永続化)を使用しています。環境が異なる場合は、サービス名やボリューム名などを読み替えてください。
目次
なぜアップデートが必要?
- セキュリティ修正:脆弱性対応や依存パッケージ更新が含まれる場合があります。
- 不具合修正:既知のバグが解消され、安定性が向上します。
- 新機能・改善:UI/ノード/ワークフロー実行基盤(Task Runners など)の改善が入ります。
公式でもこまめな更新が推奨されています。特に本番運用の場合は、少なくとも月1回の定期メンテナンスをおすすめします。
頻繁にアップデートしましょう。複数のバージョンを一度にアップデートする必要がなくなり、アップデートによる混乱のリスクを軽減できます。少なくとも月に1回はアップデートするようにしてください。
https://docs.n8n.io/hosting/installation/updating/
n8n の UI 左下やサイドバーに Updates
が表示されていれば、更新可能のサインです。クリックするとバージョン差分の概要を確認できます。

バックアップ
アップデート前に、n8n の永続データが入っている Docker ボリュームをバックアップします(例:ボリューム名 n8n_n8n_data
)。
cd /opt/n8n
# 例: ボリューム名が n8n_n8n_data の場合
VOL=n8n_n8n_data
docker run --rm -v $VOL:/data -v $(pwd):/backup busybox \
sh -c 'tar -czf /backup/n8n_backup_$(date +%F).tgz -C /data . && ls -lh /backup'
STEP
STEP
アップデート実行
docker compose pull
はコンテナレジストリ(Docker Hub など)から最新イメージを取得します。その後、差し替えて起動します。
cd /opt/n8n
# 最新イメージ取得
docker compose pull n8n
# 停止
docker compose down
# 起動
docker compose up -d
動作確認
# ログ(DBマイグレーションやエラーの有無を確認)
docker compose logs -f n8n
# 稼働確認
docker compose ps
# バージョン表示
docker exec n8n n8n --version
UI の Updates
表示が消えていること、既存ワークフローの実行・編集、Webhook の受信などが正常であることを確認します。

ロールバック(不具合時)
アップデート後に不具合が出た場合は、状況に応じて次のどちらかで切り戻します。
- タグ/Digestで戻す: アプリのバイナリ(n8n本体のバージョン)を戻す。データ(ワークフロー・認証情報・実行履歴など)はそのまま残る。
- tgzで戻す: データ領域(/home/node/.n8n)をバックアップ時点に戻す。n8n本体のバージョンは戻らない(必要ならタグ/Digestと併用)。
パターンA:タグ/Digestでのロールバック(イメージだけ戻す)
- こんな時に: アプリの不具合・互換性問題が疑わしく、データ自体は壊れていない場合。
- ポイント: 以前に動いていた
image:
(例:n8nio/n8n:1.yy.z
)や@sha256:…
の Digest に戻します。Digest 固定は完全再現が可能です。
cd /opt/n8n
# (1) 以前に動いていたタグ/Digestを選ぶ
# 例: image: n8nio/n8n:1.yy.z または n8nio/n8n@sha256:xxxxxxxx
# 補助: ローカルの履歴を確認
# docker images --digests n8nio/n8n
# (2) docker-compose.yml の image を以前の値へ変更
# image: n8nio/n8n:1.yy.z
# # もしくは Digest 固定
# # image: n8nio/n8n@sha256:xxxxxxxx
# (3) 切り戻し実行
docker compose pull n8n
docker compose down
docker compose up -d
# (4) 仕上げ確認
docker exec n8n n8n --version
パターンB:バックアップからのロールバック(ボリューム復元)
- こんな時に: マイグレーション失敗・設定破損・ワークフローや資格情報の不整合など、データそのものを元に戻したい場合。
- 前提: 事前に作成した
n8n_backup_YYYY-MM-DD.tgz
を使います。復元中はn8n
を停止してください。
cd /opt/n8n
# (1) n8n を止める
docker compose down
# (2) 復元対象(例)
VOL=n8n_n8n_data
BACKUP=n8n_backup_2025-08-27.tgz # 実ファイル名に置き換え
# (3) ボリュームを中身ごと置き換え(BusyBoxを使用)
docker run --rm -v $VOL:/data -v $(pwd):/backup busybox \
sh -c "rm -rf /data/* && tar -xzf /backup/$BACKUP -C /data && \
chown -R 1000:1000 /data && ls -lah /data | head"
# (4) n8n を起動
docker compose up -d
# (5) ログとバージョン確認
docker compose logs -f n8n
docker exec n8n n8n --version
まとめ
- アップデート前にボリュームをバックアップ(tgz)。
- 通常の更新は
pull → down → up -d
の3ステップ。 - 不具合時は タグ/Digestでイメージを戻す or tgzでデータを戻す(必要に応じて両方)。