「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 複数コンテナの一括管理ができる機能。
- Docker Composeファイル(docker-compose.yml)に定義する。
- 既存のDockerイメージやDockerファイルをインテグレーションする感じ。
ファイル †
docker-compose.yml †
概要 †
機能 †
- バージョン
# | Compose | Engine |
1 | 3.3 | 17.06.0 |
2 | 3.2 | 17.04.0 |
3 | 3.1 | 1.13.1 |
4 | 3.0 | 1.13.0 |
5 | 2.3 | 17.06.0 |
6 | 2.2 | 1.13.0 |
7 | 2.1 | 1.12.0 |
8 | 2.0 | 1.10.0 |
9 | 1.0 | 1.9.1 |
- 機能
- Dockerイメージの指定(image)
- Dockerファイルによるイメージのビルド(build)
- コンテナ内で動かすコマンドの指定(command/entrypoint)
- コンテナ間での連携(links)
- コンテナ間の通信(ports/expose)
- コンテナ間の依存関係(depends_on)
- コンテナ環境変数の指定(environment/env_file)
- コンテナのデータ設定(volumes/volumes_from)
- コンテナの情報設定(container_name/labels)
https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker/blob/master/WebApplication1/docker-compose.yml
docker-compose.override.yml †
概要 †
https://github.com/daisukenishino2/EvaluateAspNetCoreOnDocker/blob/master/WebApplication1/docker-compose.override.yml
その他のdocker-composeファイル †
docker-compose.dcproj †
- 概要
- Docker用のファイルではなく、Visual Studio の Docker Composeプロジェクトのファイル
- ブラウザ起動の設定などが含まれるらしいが、細かい所はMSらしく、仕様が明記されていない。
, etc. †
コマンド †
- 前述のように、基本は、カレントの、
docker-composeファイルに記述の範囲のサービスに作用する。
- カレント・ディレクトリの以下のdocker-composeファイルが対象
- docker-compose.yml
- docker-compose.yaml
- docker-compose.override.yml
- docker-compose.override.yaml
- コマンドに
- 「-f」を付与し、ファイルを明示することも可能。
- 「--remove-orphans」を付与し、ファイルで定義されていないサービスを対象にする。
基本コマンド †
バージョン確認 †
>C:\Users\nishi>docker-compose -v
docker-compose version 1.24.1, build 4667896b
確認 †
- logs
>docker-compose logs
- オプション
- --no-color : 白黒で画面に出力
- --follow(-f) : ログの出力をフォロー(表示しつづける)
- --timestamps(-t) : タイムスタンプの表示
- --tail : 各コンテナのログの最終行から遡った行を表示
開始 †
>docker-compose up -d
※ -dを付与しない場合は、フォアグラウンドで動くので出力からデバッグなどが可能。
- オプション
- 実行(二者択一)
- -d : バックグラウンドでコンテナを実行
- --abort-on-container-exit : コンテナが1つでも停止したら全てのコンテナを停止
- 再作成(二者択一)
- --force-recreate : 変更がなくても、コンテナを再作成する
- --no-recreate : コンテナが既に存在していれば、再作成しない
- その他
- --no-color : 白黒で画面に表示
- --no-deps : リンクしたサービスを表示しない
- --no-build : イメージが見つからなくてもbuild しない
- --timeout(-t) TIMEOUT : 停止する時のタイムアウト秒数を指定 (デフォルト:10)
- --remove-orphans : ファイルで定義されていないサービス用
停止 †
- 通常の停止
>docker-compose stop
- オプション
- timeout(-t) TIMEOUT : 停止する時のタイムアウト秒数を指定 (デフォルト:10)
- オプション
- -s : コンテナに送信するシグナル。デフォルトのシグナルは SIGKILL
再開 †
>docker-compose start
再起動 †
>docker-compose restart
- オプション
- timeout(-t) TIMEOUT : 停止する時のタイムアウト秒数を指定 (デフォルト:10)
中断・再開 †
- 再開
>docker-compose unpause
削除 †
- オプション
- --force(-f) : 確認なく削除する
- -v : アタッチしたアノニマス・ボリュームも削除
- --all(-a) : docker-compose run で作成した一度だけのコンテナを全て削除
- オプション
- --rmi type : イメージの削除。type は'all' or 'local'
- --volumes(-v) : 名前付きボリューム、アタッチしたアノニマス・ボリュームを削除
- --remove-orphans : ファイルで定義していないサービス用のコンテナも削除
個別のコンテナ操作 †
コンテナ操作 †
>docker-compose run webapplication1 /bin/bash
root@041a67b9c5dc:/#
コンテナ構成の確認 †
- オプション
- --protocol=proto : tcp or udp [Default : tcp]
- --index=index : コンテナのインデックス数 [Default : 1]
- 構成の確認
>docker-compose config
- オプション
- --quiet(-q) : 認証設定以外のメッセージを表示しない
- --services : サービス名を1行で表示
コンテナのスケールアウト †
>docker-compose up --scale webapplication1=3
その他のコマンド †
イメージのビルド †
>docker-compose up --build
リファレンス †
用例 †
以下が参考になる。
各種サービス †
各種XXXXをDockerコンポーズ化する。
参考 †
マイクロソフト系技術情報 Wiki †
Visual Studio Tools
参考 †
docker.com †
Compose †
Compose file †
Compose command †
Qiita †
さくらのナレッジ †