-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_DockerCompose
- 戻る(Docker)
- Dockerコマンド
- Dockerファイル
- Dockerレジストリ
- Dockerコンポーズ
- 複数コンテナの一括管理ができる機能。
- Docker Composeファイル(docker-compose.yml)に定義する。
- 既存のDockerイメージ(Dockerの該当節を参照)や
Dockerファイルをインテグレーションする感じ。
- 基本的に、servicesに書くservices(コンテナ)を書く。
- buildには、Dockerファイルを指定する。
- imageには、Dockerイメージ(Dockerの該当節を参照)を指定する。
- その他は、≒ docker container runコマンド(Dockerコマンドの該当節を参照)
のオプション
- バージョン
| 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イメージ(Dockerの該当節を参照)の指定(image)
-
コンテナ内で動かすコマンドの指定(command/entrypoint)
-
コンテナ環境変数の指定(environment/env_file)
-
コンテナの情報設定(container_name/labels)
-
入出力
-
コンテナ間の通信(ports/expose)
・portsは、ポートをホスト・マシンに公開する。基本的にはホスト側:コンテナ側と書く。
・exposeは、ポートを仮想ブリッジ(docker0)に公開する。コンテナのポートのみを書く。 -
コンテナのデータ設定(volumes/volumes_from)
・volumesは、ホスト・マシンのボリュームをマウントする。基本的にはホスト側:コンテナ側と書く。
・volumes_fromは、V3 で 削除されたが、networks
(Dockerのネットワーク設定の該当節を参照)のように、
volumesが使える。
-
-
ネットワーク(Dockerのネットワーク設定)
- コンテナ間の依存関係(depends_on)
- コンテナ間での連携(links)
昨今、非推奨。networks を使用する。
(いずれも Dockerのネットワーク設定の該当節を参照)
-
- 上書き用ファイルで、ローカル・デバックに必要な情報を集約するなどの用途で利用する。
- K8sサービス用のイメージを作成する場合は、以下の様に明示して除外する。
>docker-compose -f docker-compose.yml build
-
概要
- Docker用のファイルではなく、Visual Studio の Docker Composeプロジェクトのファイル
- ブラウザ起動の設定などが含まれるらしいが、細かい所はMSらしく、仕様が明記されていない。
-
例
Compose fileを参照。
https://docs.docker.jp/compose/compose-file.html#build
- https://docs.docker.jp/compose/compose-file.html#context
- https://docs.docker.jp/compose/compose-file.html#dockerfile
- https://docs.docker.jp/compose/compose-file.html#args
https://docs.docker.jp/compose/compose-file.html#image
- https://docs.docker.jp/compose/compose-file.html#command
- https://docs.docker.jp/compose/compose-file.html#entrypoint
- https://docs.docker.jp/compose/compose-file.html#environment
- https://docs.docker.jp/compose/compose-file.html#env-file
- https://docs.docker.jp/compose/compose-file.html#container-name
- https://docs.docker.jp/compose/compose-file.html#labels
「ホスト側:コンテナ側」と書けば安定。
「コンテナ側」と書く。
「ホスト側:コンテナ側」と書けば安定。
- ホスト側を「.」とすると、docker-compose.ymlの位置にマウントされる。
- なので、「./data:/data」などと書くと、解り易いと思われる。
- https://docs.docker.jp/compose/compose-file.html#links
- https://docs.docker.jp/compose/compose-file.html#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
-
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 rm [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
Compose commandを参照。
以下が参考になる。
各種XXXXをDockerコンポーズ化する。
- docker-composeでデータベースコンテナを立てるときのTips
https://muunyblue.github.io/9f067d8d6df2d4b8c64fb4c084d6c208.html
Kubernetesとの連携。
Visual Studio Tools for Docker
Visual Studio Kubernetes Tools
-
Docker Compose - docker-compose.yml リファレンス
https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa -
docker-compose コマンドまとめ
https://qiita.com/wasanx25/items/d47caf37b79e855af95f -
丁寧すぎるDocker-composeによる
rails5 + MySQL on Dockerの環境構築(Docker for Mac)
https://qiita.com/azul915/items/5b7063cbc80192343fc0
-
連載:Docker Compose入門
- (1) ~アプリケーションをコンテナで簡単に扱うためのツール~
https://knowledge.sakura.ad.jp/21387/ - (2) ~ウェブサーバの開発環境を作るための準備~
https://knowledge.sakura.ad.jp/23632/ - (3) ~ネットワークの理解を深める~
https://knowledge.sakura.ad.jp/23899/ - (4) ~ネットワークの活用とボリューム~
https://knowledge.sakura.ad.jp/26522/
- (1) ~アプリケーションをコンテナで簡単に扱うためのツール~
移行メモ
- 「削除」の個別削除の構文が
docker-compose [Option] [ServiceName...]と サブコマンド名を欠いていたため、docker-compose rm [Option] [ServiceName...]に正した。- 「停止」「再起動」のオプション記載が
-timeout(-t)となっていた箇所を 他と揃えて--timeout(-t)とした。- マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への リンクは、移行済みの
MS_DockerForWindows/MS_VSToolsForDocker/MS_VSKubernetesToolsに張り替えた。
Tags: 移行, Docker, Docker Compose, コンテナ, docker-compose.yml, Kubernetes
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。