Docker compose編 ~複数のコンテナ使用法!~

基礎

docker-composeとは

複数のコンテナ実行を一括で管理できる。 ファイルはyaml形式で設定。

記法

versionはファイルフォーマットのバージョン。
service要素下の定義はコンテナの名前の定義であり、さらにその一つ下の階層が実行するコンテナの定義。
image要素はdockerイメージ、portsではポートフォワーディングを指定している。
build属性はDockerfileが存在するディレクトリの相対パスを指定する。
volumesはホスト・コンテナ間でファイルがコピーされるのではなく、共有される仕組み。

コマンド

docker-compose up

で実行。

docker-compose down

でdocker-compose.ymlに定義しているコンテナを全て停止・削除できる。

docker-compose up -d --build -d

がビルドを省略して実行する。
--buildがDockerイメージのビルドをさせることができる。

Master/Slave

Master/Slaveとは

複数の機器を一つが制御する側、他が制御される側、という役割を行う方式。
制御する側を「マスター」、される側を「スレーブ」。
一言で言うと複数で管理しよう方式。

例:データベースを別のデータベースに複製して同期(レプリケーション)してデータのバックアップをしたりなど。
今後もっと詳しくやりたいと思います。

Master/Slaveの設定

そしてSlaveコンテナ内では鍵の取得や設定は出来るだけ行わずに、外から環境変数として渡す。

接続先の示し方 Composeではmasterに対してslaveのlinksを設定する。linksは他のservices群にある他のコンテナと通信できる。
そのためmasterからslaveの名前で解決できる。