.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • 複数コンテナの一括管理ができる機能。
  • Docker Composeファイル(docker-compose.yml)に定義する。
  • 既存のDockerイメージDockerファイルをインテグレーションする感じ。

ファイル

docker-compose.yml

概要

機能

  • バージョン
    #ComposeEngine
    13.317.06.0
    23.217.04.0
    33.11.13.1
    43.01.13.0
    52.317.06.0
    62.21.13.0
    72.11.12.0
    82.01.10.0
    91.01.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

概要

  • 上書き用ファイルで、ローカル・デバックに必要な情報を集約するなどの用途で利用する。
  • K8sサービス用のイメージを作成する場合は、以下の様に明示して除外する。
    >docker-compose -f docker-compose.yml build

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

確認

  • ps
    >docker-compose ps -q
  • 構文
    docker-compose ps [Option] [ServiceName...]
  • オプション
    • -q : ID のみ表示
  • logs
    >docker-compose logs
  • 構文
    docker-compose logs [Option] [ServiceName...]
  • オプション
    • --no-color : 白黒で画面に出力
    • --follow(-f) : ログの出力をフォロー(表示しつづける)
    • --timestamps(-t) : タイムスタンプの表示
    • --tail : 各コンテナのログの最終行から遡った行を表示

開始

>docker-compose up -d

-dを付与しない場合は、フォアグラウンドで動くので出力からデバッグなどが可能。

  • 構文
    docker-compose up [Option] [ServiceName...]
  • オプション
    • 実行(二者択一)
      • -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
  • 構文
    docker-compose stop [Option] [ServiceName...]
  • オプション
    • timeout(-t) TIMEOUT : 停止する時のタイムアウト秒数を指定 (デフォルト:10)
  • 強制の停止
    >docker-compose kill -s SIGINT
  • 構文
    docker-compose kill [Option] [ServiceName...]
  • オプション
    • -s : コンテナに送信するシグナル。デフォルトのシグナルは SIGKILL

再開

>docker-compose start
  • 構文
    docker-compose start [ServiceName...]
  • オプション
    なし

再起動

>docker-compose restart
  • 構文
    docker-compose restart [Option] [ServiceName...]
  • オプション
    • timeout(-t) TIMEOUT : 停止する時のタイムアウト秒数を指定 (デフォルト:10)

中断・再開

  • 中断
    >docker-compose pause
  • 構文
    docker-compose pause [ServiceName...]
  • オプション
    なし
  • 再開
    >docker-compose unpause
  • 構文
    docker-compose unpause [ServiceName...]
  • オプション
    なし

削除

  • 個別削除
    >docker-compose rm
  • 構文
    docker-compose [Option] [ServiceName...]
  • オプション
    • --force(-f) : 確認なく削除する
    • -v : アタッチしたアノニマス・ボリュームも削除
    • --all(-a) : docker-compose run で作成した一度だけのコンテナを全て削除
  • 全削除
    >docker-compose down
  • 構文
    docker-compose down [Option]
  • オプション
    • --rmi type : イメージの削除。type は'all' or 'local'
    • --volumes(-v) : 名前付きボリューム、アタッチしたアノニマス・ボリュームを削除
    • --remove-orphans : ファイルで定義していないサービス用のコンテナも削除

個別のコンテナ操作

コンテナ操作

>docker-compose run webapplication1 /bin/bash
root@041a67b9c5dc:/#

コンテナ構成の確認

  • 公開ポートの確認
    >docker-compose port webapplication1 80
  • 構文
    docker-compose port [Option] ServiceName Private_Port
  • オプション
    • --protocol=proto : tcp or udp [Default : tcp]
    • --index=index : コンテナのインデックス数 [Default : 1]
  • 構成の確認
    >docker-compose config 
  • 構文
    docker-compose config [Option]
  • オプション
    • --quiet(-q) : 認証設定以外のメッセージを表示しない
    • --services : サービス名を1行で表示

コンテナのスケールアウト

>docker-compose up --scale webapplication1=3
  • 構文
    docker-compose up --scale [ServiceNameA=n...]
  • オプション
    なし

その他のコマンド

イメージのビルド

>docker-compose up --build

リファレンス

用例

以下が参考になる。

各種サービス

各種XXXXをDockerコンポーズ化する。

各種NoSQL編

各種RDBMS編

参考

K8s連携

Kompose

Compose on Kubernetes

マイクロソフト系技術情報 Wiki

Visual Studio Tools

Visual Studio Tools for Docker

Visual Studio Kubernetes Tools

参考

docker.com

Compose

https://docs.docker.com/compose/

Compose file

https://docs.docker.com/compose/compose-file/

Qiita


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-15 (水) 18:21:11 (101d)