プログラミング学習記録#17 Docker Compose

●Docker Compose


Dockerfileだけの場合の課題

・複数のイメージ・コンテナを個別に操作するのが面倒

・PHPのイメージ、DBのイメージなどを個別に操作しないといけない


○システムは通常複数の構成要素から成り立っている

そこで・・・

Docker Compose:複数のコンテナをまとめて定義し実行するためのDockerツール

docker-compose.ymlファイル:Docker Composeの設定ファイル

1つのコマンドで、ymlファイルで設定した内容から複数のイメージ、コンテナをまとめて起動できる

●docker-compose.ymlの作成

docker-compose.ymlとは・・・

Docker Composeの設定を行う、YML形式で書かれたファイル


●Docker Composeの操作


○コマンド

up:コンテナを作成・起動する

docker-compose up  # イメージが存在しない時はビルドする

docker-compose up -d  # コンテナをバックグラウンドで起動する

docker-compose up —build # イメージをビルドした上でコンテナを作成・起動する

ps:コンテナの一覧を表示する

docker-compose ps  # コンテナの一覧を表示

docker-compose ps -a  # 停止中も含めたコンテナの一覧を表示する

logs:ログを表示する

docker-compose logs web  # サービスを指定する


run:コンテナを作成して一度だけコマンドを実行

docker-compose run web python app.py  # サービスとコマンドを指定する


exec:起動中のコンテナでコマンドを実行する

docker-compose exec web /bin/sh  # サービスとコマンドを指定する


down:upで作成されたコンテナを停止・削除する

docker-compose down


●ファイルをホストとコンテナで共有する



課題:ファイルを修正する度にイメージをビルドし直さないといけない

そこで

ファイルとホストをコンテナで共有する

-> ボリュームを使うとホストのファイルをコンテナにマウントできる

※マウント・・・コンテナの外にあるディレクトリ・ファイルをコンテナの中から利用できるようにすること


この記事が気に入ったらサポートをしてみませんか?