docker-compose
複数のコンテナを起動するとき、コンテナごとに構成や起動/停止を管理していると運用が煩雑になり大変...
そこでdocker-compose
を使用する。
docker-composeは、複数のコンテナ(DB用やwebサーバー, logのコンテナ)をまとめて管理するためのツール。
構成ファイルは docker-compose.yml
。
docker-compose.ymlにはimageかbuildを必ず指定する
imageの指定
webserver: image: centos:latest
imageの構成をDockerfileに書いて、それを自動でビルドしてベースイメージに指定することもできる
webserver: build: .
buildにはdocker-compose.ymlのあるディレクトリをカレントディレクトリとした時のDockerfileの場所を指定。
コマンド
- command コンテナで動かすコマンドを指定
command: /bin/bash
- links
同一のdocker-compose.ymlに定義がある
links: - dbserver - dbserver:mysql # 別名を定義
- external_links 同一のdocker-compose.ymlに定義がない
external_links: - redis - project_db:mysql
- ports/expose
ports: - "3000" - "8000:8000"
ホストマシンへポートを公開せず、リンク機能を使って連携するコンテナにのみポートを公開する場合はexpose
expose: - "3000" - "8000"