コンテナライフサイクル管理

Dockerコンテナの完全なライフサイクルを管理:作成、起動、停止、再起動、一時停止、再開、削除。再起動ポリシーとグレースフルシャットダウンを学びます。

Container Lifecycle

詳細な説明

コンテナのライフサイクル

Dockerコンテナは作成済み、実行中、一時停止、停止、削除といった複数の状態を経ます。このライフサイクルの理解がコンテナ管理の鍵です。

起動と停止

# 実行中のコンテナを停止(SIGTERMを送信、10秒後にSIGKILL)
docker stop my-app

# カスタムタイムアウトで停止(グレースフルシャットダウンに30秒)
docker stop -t 30 my-app

# 停止したコンテナを起動
docker start my-app

# 再起動(停止+起動)
docker restart my-app

再起動ポリシー

再起動ポリシーはコンテナがクラッシュした時やDockerデーモンが再起動した時の動作を決定します:

# 常に再起動(デーモン再起動後も)
docker run -d --restart=always my-app

# 失敗時に最大5回再試行
docker run -d --restart=on-failure:5 my-app

# 手動停止しない限り再起動
docker run -d --restart=unless-stopped my-app

バッチ操作

すべての実行中コンテナを停止:

docker stop $(docker ps -q)

すべての停止済みコンテナを削除:

docker container prune -f

一時停止と再開

一時停止はcgroupsを使用してコンテナ内のすべてのプロセスをフリーズし、終了させません:

docker pause my-app
docker unpause my-app

コンテナの状態を失わずに一時的にリソースを解放する必要がある場合に便利です。

ユースケース

グレースフルシャットダウンが必要な本番サービスの管理、フォールトトレラントなデプロイメントの再起動ポリシー設定、メンテナンスウィンドウ中のバッチコンテナ操作。

試してみる — Docker CLI Reference

フルツールを開く