プログラミング学習記録#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
●ファイルをホストとコンテナで共有する
課題:ファイルを修正する度にイメージをビルドし直さないといけない
そこで
ファイルとホストをコンテナで共有する
-> ボリュームを使うとホストのファイルをコンテナにマウントできる
※マウント・・・コンテナの外にあるディレクトリ・ファイルをコンテナの中から利用できるようにすること