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の名前で解決できる。