Docker Compose
複数コンテナの一括管理ツール
ymlでコンテナ構成、パラメータを記述することで1コマンドでまとめて管理できる
インストール
pip経由でインストールするのが簡単
code:bash
$ sudo apt install -y python3-pip
$ pip3 install --upgrade pip # pip最新版が必要
$ pip3 install docker-compose
使い方
https://knowledge.sakura.ad.jp/16862/
docker-compose.ymlに起動するコンテナ、docker runのパラメータを定義する
code:docker-compose.yml
version: '3'
services:
wordpress:
image: wordpress
container_name: some-wordpress
networks:
- wordpress-network
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_PASSWORD: my-secret-pw
mysql:
image: mysql:5.7
container_name: some-mysql
networks:
- wordpress-network
restart: always
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
networks:
wordpress-network:
container_name: コンテナ名
environment: 環境変数
ports: ポート
image: Dockerイメージ
networks: ノード間通信用network定義(map値なので最後に:を付ける)
service.network: 接続するnetworkを記述
build: Dockerfileのあるディレクトリを記述するとdocker-compose buildでイメージ生成ができる
パラメータリファレンス:http://docs.docker.jp/compose/compose-file.html#service-configuration-reference
コンテナ起動
code:bash
$ docker-compose up -d # デーモン実行のために-dを付ける
# コンテナ一覧
$ docker-compose ps
コンテナ停止
code:bash
$ docker-compose stop
# 削除
$ docker-compose rm
$ dock er-compose rm -f # 確認せず削除
# 停止と同時にコンテナ、ネットワークを削除
$ docker-compose down
buildとの組み合わせ
code:docker-compose.xml
version: '3'
services:
tomcat:
build: ./tomcat
image: tomcat-image
container_name: tomcat-1
networks:
- tomcat-network
ports:
- 8081:8080
volumes:
- ./tomcat/share/logs:/share/logs
nginx:
build: ./nginx
image: nginx-tomcat
container_name: nginx-tomcat-1
networks:
- tomcat-network
ports:
- 10080:80
networks:
tomcat-network:
build構成ファイルの参考は→ https://knowledge.sakura.ad.jp/15253/
イメージのビルドと起動
code:bash
$ docker-compose build
$ docker-compose up -d