メインコンテンツへ
開発技術開発・運用実践

Docker Composeの主な用途として、最も適切なものはどれか。

ア.複数のDockerコンテナで構成されるアプリケーションを、YAMLファイルで定義して一括起動・停止・管理するツール。正解
イ.単一のDockerコンテナを本番環境向けに最適化し、セキュリティスキャンを実行するCI/CDツール。
ウ.複数のDockerホストにコンテナを分散配置し、負荷分散と自動スケーリングを管理するオーケストレーションプラットフォーム。
エ.DockerイメージをビルドしてDocker Hubへ自動的にプッシュする継続的デリバリーツール。

解説

Docker ComposeはWebアプリ開発の「セット住宅」。「Webサーバー、データベース、キャッシュサーバー、全部一緒に建てて一括管理」をYAML1ファイルで実現します。`docker compose up`一発で全部起動する便利ツールです。

なぜ ア が正解か

アが正解。Docker Composeはdocker-compose.yml(またはcompose.yaml)ファイルにWebサーバー・DB・Redisなど複数のサービスを定義し、`docker compose up`で全コンテナを一括起動、`docker compose down`で一括停止できるツール。ローカル開発環境の構築や小規模な本番環境の管理に活用される。

なぜ イ は間違いか

Docker Composeは単一コンテナの最適化やセキュリティスキャンのためのツールではない。セキュリティスキャンはTrivy等の専用ツール、CI/CDはGitHub Actions・Jenkins等が担う。

なぜ ウ は間違いか

複数のDockerホストにまたがるコンテナの分散配置・オートスケーリングはKubernetesやDocker Swarmが担う。Docker ComposeはKubernetesのような本格的なオーケストレーション機能は持たず、主に単一ホスト上の複数コンテナ管理が用途。

なぜ エ は間違いか

Docker HubへのイメージのビルドとプッシュはDockerコマンドやCI/CDパイプラインが担う。Docker ComposeはHub自動プッシュを主目的とするツールではなく、コンテナ群の定義・起動・管理が本来の用途。

出典: AI生成問題(学習用)