過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト コンテナ技術の利用 問7

コンテナ技術の利用/コンテナの操作と管理

compose.yml(Docker Compose)における各サービスのdepends_onキーの役割として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「コンテナ技術の利用」に対応。実際の試験問題ではありません)

正解:A

解説

Docker Composeのdepends_onキーは、あるサービスが別のサービスに依存していることを示し、依存先のサービスが先に起動されるように起動順序を制御します。ただし既定では依存先のコンテナが起動したことしか保証せず、アプリケーションが要求を受け付けられる状態になるまで待つには、healthcheckと組み合わせてcondition: service_healthyを指定する必要があります。

選択肢ごとの解説

  • A正しい。depends_onはサービス間の起動順序の依存関係を定義するキーです。
  • B誤り。サービス名での名前解決は同じCompose用ネットワークに参加していれば自動的に働くもので、depends_onの機能ではありません。
  • C誤り。既定のdepends_onは依存先が「起動した」ことしか保証しません。準備完了まで待つにはcondition: service_healthyの指定が要ります。
  • D誤り。依存先が実行中に停止・クラッシュしたときに、依存元が常に自動で停止・再起動するわけではありません。ただし depends_on は依存関係に基づく停止順序も扱い、長形式の depends_on で restart: true を指定すると、明示的な Compose 操作による依存先の更新・再起動に連動します。無条件に『停止したら自動で停止・再起動する』とする本肢の説明は正しくありません(サービス自身の restart ポリシーとも区別します)。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く