.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

Visual Studio Tools - マイクロソフト系技術情報 Wiki

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-05-19 (火) 11:09:26 (17d)