見出し画像

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つを定義する。

5.docker-composeコマンド関連図

docker-composeコマンド関連図





いいなと思ったら応援しよう!