「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 複数コンテナの一括管理ができる機能。
- Docker Composeファイル(docker-compose.yml)に定義する。
- 既存のDockerイメージやDockerファイルをインテグレーションする感じ。
ファイル †
docker-compose.yml †
概要 †
機能 †
- バージョン
| Compose | Engine |
| Compose 仕様 | 19.03.0 |
| 3.8 | 19.03.0 |
| 3.7 | 18.06.0 |
| 3.6 | 18.02.0 |
| 3.5 | 17.12.0 |
| 3.4 | 17.09.0 |
| 3.3 | 17.06.0 |
| 3.2 | 17.04.0 |
| 3.1 | 1.13.1 |
| 3.0 | 1.13.0 |
| 2.3 | 17.06.0 |
| 2.2 | 1.13.0 |
| 2.1 | 1.12.0 |
| 2.0 | 1.10.0 |
| 1.0 | 1.9.1 |
- 機能
- Dockerファイルによるイメージのビルド(build)
- Dockerイメージの指定(image)
- コンテナ内で動かすコマンドの指定(command/entrypoint)
- コンテナ環境変数の指定(environment/env_file)
- コンテナの情報設定(container_name/labels)
- コンテナ間の通信(ports/expose)
・portsは、ポートをホスト・マシンに公開する。基本的にはホスト側:コンテナ側と書く。
・exposeは、ポートを仮想ブリッジ(docker0)に公開する。コンテナのポートのみを書く。
- コンテナのデータ設定(volumes/volumes_from)
・volumesは、ホスト・マシンのボリュームをマウントする。基本的にはホスト側:コンテナ側と書く。
・volumes_fromは、V3 で 削除されたが、networksのように、volumesが使える。
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.dcproj †
- 概要
- Docker用のファイルではなく、Visual Studio の Docker Composeプロジェクトのファイル
- ブラウザ起動の設定などが含まれるらしいが、細かい所はMSらしく、仕様が明記されていない。
, etc. †
build †
https://docs.docker.jp/compose/compose-file.html#build
image †
https://docs.docker.jp/compose/compose-file.html#image
command/entrypoint †
environment/env_file †
container_name/labels †
ports/expose †
「ホスト側:コンテナ側」と書けば安定。
「コンテナ側」と書く。
volumes/volumes_from †
「ホスト側:コンテナ側」と書けば安定。
- ホスト側を「.」とすると、docker-compose.ymlの位置にマウントされる。
- なので、「./data:/data」などと書くと、解り易いと思われる。
links/depends_on †
コマンド †
- 前述のように、基本は、カレントの、
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 †
参考 †
docker.com †
Compose †
Compose file †
Compose command †
Qiita †
さくらのナレッジ †