
docker-compose 備忘録 概要編
1.docker-composeとは
docker-composeとは、複数のコンテナを定義して実行するDockerアプリケーションのためのツール。
例えば、一般的なWebアプリケーションの場合はDBサーバー、APサーバーを起動させる。このとき1.DBサーバー、2.APサーバーの順番で起動する必要がある。docker-composeを使用するとコンテナの起動順、停止順を制御できる。
2.docker-composeを使う理由
(1)dockerでサービスを構築するときに考えたこと
①1コンテナに全部のプロセスを入れて1コンテナを作るか
②1コンテナ1プロセスにして複数コンテナを作るか
検討した結果②1コンテナ1プロセスにして複数コンテナにした。
<理由>
・1コンテナ1プロセスが指針となっており、複数プロセスを動かすのは色々と大変そうだ
・分けることで公開イメージを使用できる
・分けることでイメージを再利用できる
(2)docker-composeを使う理由
複数コンテナでサービスを構築する場合に起動の依存関係が必要になる。
そこでdocker-composeを使う。
3.使用上の留意点・備忘録
(1)コンテナとデータの分離
volumeを使用してDBデータ、ログ等はコンテナ外に保存。
(2)タイムゾーンの設定
ymlファイルのenvironment:にTZ=Asia/Tokyoまたはサービスに応じたタイムゾーン設定を追加。
(3)サービス間通信について
サービス間同士の通信は各サービス名で名前解決を行い通信をする。
例えばAPサーバーに設定するDB接続先はホスト名をサービス名にする。
(4)ymlファイルのVersion
ymlファイルにはversion指定で2と3がある。
書き方や挙動が異なるので注意が必要。
4.ymlファイル
docker-compose.ymlは複数のコンテナから成るサービスを構築・実行する手順を自動化するための定義ファイル。
docker-composeの場合、拡張子はymlだが、YAML形式のファイル。
version, services, networks, volumes の4つを定義する。