2026年8月26日

2026年8月26日

Dockerコンテナの自動再起動を設定する方法(–restart)

はじめに

Dockerコンテナは、一時的な作業環境やアプリケーションの実行に適しています。しかし、コンテナが停止した際に手動で再起動する必要があると運用に負担がかかります。そこで--restartオプションを使うことで、特定の条件下では自動的にコンテナを再起動することが可能になります。

症状・背景

  • ネットワーク接続失敗やOSエラーによりコンテナが停止した場合
  • Docker Daemon自体が停止してしまった場合
  • コンテナ内部で発生したエラーにより自動的に終了した場合

手順・設定方法

ステップ1: シングルリスタート

# コンテナが停止した際に一度だけ自動的に再起動します。
docker run --name my_container --restart=on-failure:5 my_image

ステップ2: フォールタスティックリスタート

# 連続して3回停止するたびに自動的に再起動します。
docker run --name my_container --restart=unless-stopped my_image

ステップ3: カスタム条件でのリスタート

# 特定のエラーコードが発生した場合のみ再起動します。
docker run --name my_container --restart=on-failure:5,1024-1048 my_image

ステップ4: 実践/トラブルシュート/監視

# コンテナのリスタートポリシーを確認する
docker inspect -f '{{.HostConfig.RestartPolicy}}' my_container

# コンテナの状態をモニタリングする
docker ps -q --filter name=my_container | xargs docker logs -f

注意事項

  • --restartオプションはDocker Runコマンドで指定します。
  • on-failure:では、指定されたエラーコードから始まるエラーが発生した場合に再起動されるため注意が必要です。
  • unless-stoppedは Docker Daemonが停止していない限り常に自動的に再起動するので注意してください。

まとめ

1. on-failure: エラーコードに基づいて特定回数の連続エラー後で再起動します。

2. unless-stopped: Docker Daemonが停止していない限り自動的に再起動します。

3. カスタム条件でのリスタート: 特定のエラーコードによる再起動を指定できます。

4. 実践的な注意点: リスタートポリシーはコンテナの信頼性に大きく影響を与えますので、慎重に選択しましょう。

5. 関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ