docker-composeとは
複数のコンテナの情報を定義して、操作するためのツール。たとえば、WebサーバーとDBサーバー、Redisのサーバーをコンテナでいっぺんに立ち上げたりといったことができる。
docker-composeを使う場合、「docker-compose.yml」という名前のファイルに、各コンテナに対する設定をあらかじめ定義しておく。
その上で専用コマンドを実行することにより、定義した内容に従い複数コンテナを一括で同時に起動させることができる。
dockerとdocker-composeの違い・関係性
dockerは、dockerコンテナを運用するためのプラットフォーム。dockerが標準で搭載しているdocker engineでは、1度に1つずつしかdockerコンテナを操作できない。
一方でdocker-composeは、複数のdockerコンテナを1度に操作できるツール。
docker-compose.ymlの定義内容
・service
Docker Composeによって動作させるアプリケーションの単位。
例えば「mysql」「web_app」など。
・image
利用するDockerイメージを指定。「mysql:8」など。
・build
Dockerコンテナをどのように実行(build)するかをまとめます。
・volume
Dockerコンテナをマウントするボリュームを指定します。
・ports
ポートマッピングの内容を指定します。
・depens_on
他サービスの依存関係に関する指定です。
基本的なコマンド例
・イメージ構築
docker compose build
・アプリケーションの起動
docker compose up -d
「-d」は、バックグラウンドでコンテナを起動するオプション。
・アプリケーションを停止
docker compose stop
・アプリケーションを停止し、コンテナを削除
docker compose down
・アプリケーションの再起動
docker compose restart