MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - Docker Composeのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - Docker Compose
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Docker Composeは、マルチコンテナアプリケーションを定義して実行するためのツールである。<br> 効率的な開発とデプロイを可能にすることができる。<br> <br> Composeは、アプリケーションスタック全体の制御を簡素化して、サービス、ネットワーク、ボリュームを単一のYAMLファイルで簡単に管理できる。<br> そして、1つのコマンドで、設定ファイルから全てのサービスを作成および起動することができる。<br> <br> Composeは、本番環境、ステージング環境、開発環境、テスト環境、CIワークフロー等、あらゆる環境で動作する。<br> また、アプリケーションのライフサイクル全体を管理するコマンドも用意されている。<br> * サービスの開始、停止、再構築。 * 実行中のサービスのステータスの表示。 * 実行中のサービスのログ出力をストリームする。 * サービスに対して単発のコマンドを実行する。 <br><br> == Docker Composeの利点 == Docker Composeを使用することにより、コンテナ化されたアプリケーションの開発、デプロイ、管理を効率化できるメリットがいくつか存在する。<br> * シンプルなコントロール *: Docker Composeでは、1つのYAMLファイルでマルチコンテナアプリケーションを定義および管理できる。 *: これにより、様々なサービスのオーケストレーションと調整という複雑な作業が簡素化されて、アプリケーション環境の管理と複製が容易になる。 * 効率的なコラボレーション *: Docker Composeの設定ファイルは共有が簡単なため、開発者、運用チーム、その他の関係者間でのコラボレーションが容易になる。 *: この協調的なアプローチは、よりスムーズなワークフロー、より迅速な問題解決、全体的な効率の向上に繋がる。 * 迅速なアプリケーション開発 *: Composeは、コンテナの作成に使用した設定をキャッシュする。 *: 変更されていないサービスを再起動する場合、Composeは既存のコンテナを再利用することにより、環境にすばやく変更を加えることができる。 * 異なる環境間での移植性 *: Composeは、Composeファイル内の変数をサポートしている。 *: これらの変数を使用して、異なる環境や異なるユーザ向けにコンポジションをカスタマイズすることができる。 *: (ポート番号やバージョン等) * 豊富なコミュニティとサポート *: Docker Composeは、活気ある活発なコミュニティの恩恵を受けている。 *: これは、豊富なリソース、チュートリアル、サポートを意味しており、このコミュニティ主導のエコシステムはDocker Composeの継続的な改善に貢献し、 *: ユーザが問題を効果的にトラブルシューティングできるよう支援する。 <br> また、以下に示すような利点もある。<br> * 複数のDockerfileを同時に起動できる。 * ブリッジネットワークが自動作成されるため、コンテナ同士の通信が可能となる。 * インフラ構成の可視化やバージョン管理がDocker Composeで完結する。 <br><br> == docker-compose.ymlファイル == <syntaxhighlight lang="yaml"> version: '<docker-compose.ymlのバージョン>' # 例: '3' services: <コンテナ名 1 (任意の名前)>: # 例: sample1 container_name: <任意のコンテナ名> # 任意のコンテナ名を指定 image: <イメージ (リポジトリ:タグ) を指定する> # イメージからコンテナを生成する場合、imageを指定 command: <コンテナ起動時に実行するコマンド> # 例: --default-authentication-plugin=mysql_native_password> volumes: # ホストとコンテナでファイルを同期する場合等 - <ホスト側のパス 1:コンテナのパス 1> # 例: /tmp/mysql/mysql_data:/var/lib/mysql - <ホスト側のパス 2:コンテナのパス 2> ports: # ポート転送 (ポートフォワーディング) を行う場合 - <ホスト側のポート 1:コンテナのポート 1> # 例: 63306:3306 - <ホスト側のポート 2:コンテナのポート 2> environment: # 環境変数を指定する場合 <環境変数名 1: 環境変数値> # 例: MYSQL_ROOT_PASSWORD: password <環境変数名 2: 環境変数値> # 例: MYSQL_PORT: 3306 restart: on-failure # コンテナが異常終了した場合の再起動ポリシーの設定 # always: 終了ステータスの種類を問わず、常に再起動する # unless-stopped: コンテナが手動で停止された場合を除いて再起動する # on-failure: コンテナがエラーコードで停止した場合に再起動する (エラーコードは非ゼロの終了コードであること) # no: 再起動しない networks: # Dockerネットワークの構成 - <任意の名前 1 例: frontend> <コンテナ名 2 (任意の名前) 例: sample2)>: build: <Dockerfileのファイルパス> # Dockerfileを使用する場合、Dockerfileのパスをbuildで指定 volumes: # ホストとコンテナでファイルを同期する場合等 - <ホスト側のパス:コンテナのパス> ports: # ポート転送 (ポートフォワーディング) を行う場合 - <ホスト側のポート:コンテナのポート> environment: # 環境変数を指定する場合 <環境変数名 1: 環境変数値> <環境変数名 2: 環境変数値> <環境変数名 3: 環境変数値> depends_on: # 依存関係を設定する場合 (他のコンテナと連携する場合) - <コンテナ名> # 例: sample1 networks: # Dockerネットワークの構成 - <任意の名前 1 例: frontend> - <任意の名前 2 例: backend> logging: driver: "<ログドライバのオプション>" # ログの出力先やフォーマットを指定するログドライバを指定する # ログドライバには、json-file, syslog, journald, fluentd等がある options: # ログドライバのオプションを指定する max-size: "<単一のログファイルの最大サイズ>" # 例: "10m" (ログファイルの最大サイズを10[MB]に指定する場合) max-file: "<保持するログファイルの最大数>" # 例: "5" networks: frontend: driver: <ネットワークのドライバを指定> # bridge, overlay, macvlan等を指定する backend: driver: <ネットワークのドライバを指定> # bridge, overlay, macvlan等を指定する external: <既存の外部ネットワークを指定> driver_opts: <ドライバに関連する追加のオプションを指定> ipam: # IPアドレスの管理に関連する設定を指定する driver: default # IPアドレス管理のドライバを指定する config: # driverセクションに指定したドライバに関する設定を指定する - subnet: "<サブネットマスク>" # 例: 172.18.0.0/16 # networksセクションの説明: # 上記の例では、backendネットワークに対しては、ipamセクションでサブネットを指定している。 # これにより、ネットワーク内のコンテナに対して、手動でIPアドレスを指定することができる。 </syntaxhighlight> <br><br> == Composeコマンド == <code>docker-compose up -d</code>コマンドは、Docker Compose v2では動作しない。<br> YAMLファイルを実行するには、<code>docker compose -d</code>コマンドで実行する必要がある。<br> <br> Composeコマンドは、docker-compose.ymlファイルが存在するディレクトリで行う。<br> <br> ==== サービスイメージの確認 ==== docker compose images <br> ==== サービスイメージの作成 ==== サービスイメージのビルドを実行する。<br> YAMLファイルに<code>image:</code>が記述されている場合、そのイメージ名がローカルに存在しなければ、リモートからプルする。<br> YAMLファイルに<code>image:</code>が記述されていない場合、<code>build</code>に記述されているパスのDockerfileを使用して、コンテナイメージを構築する。<br> docker compose build <br> ==== リモートからサービスイメージを取得 ==== リモートからコンテナイメージを取得する。<br> docker compose pull <br> ==== サービスの確認 ==== docker compose ps <br> ==== サービスの作成 ==== 構築されたサービスイメージからサービスを作成する。<br> また、作成直後のサービスは停止している。<br> docker compose create <br> ==== サービスの実行 ==== サービスを作成して起動する。<br> <code>-d</code>オプションを付加することにより、バックグラウンドで実行することができる。<br> また、<code>--build</code>オプションを付加することにより、起動前にイメージを構築することもできる。<br> docker compose up # バックグラウンドで実行する場合 docker compose up -d # サービスイメージを構築してサービスを実行する場合 docker compose up -d --build <br> ==== サービスの起動 ==== 停止中のサービスを起動する。<br> docker compose start <br> ==== サービス再起動 ==== サービスを再起動する。<br> docker compose restart <br> ==== サービスの停止 ==== 起動中のサービスを停止する。<br> docker compose stop <br> ==== サービスの削除 ==== docker-compose.ymlファイルに記述されているサービスからコンテナを停止して、そのコンテナとネットワークを削除する。<br> <code>--rmi all</code>オプションを付加することにより、サービスイメージも削除することができる。<br> docker compose down # サービスイメージの停止および削除 docker compose down --rmi all <br> ==== サービスの強制削除 ==== 停止中のコンテナを削除する。<br> docker compose rm <br> ==== サービスの強制消去 ==== サービスを強制停止する。<br> docker compose kill <br> ==== コマンドの実行 ==== 引数で指定したサービスのコンテナ内でコマンドを実行する。<br> docker compose run <サービス名> <コマンド> <引数 1> <引数 2> <引数...> # 例: docker-compose.yml内のdbを強制的にpullして、dbおよびwebを実行する docker compose run db web new . --force --database=mysql <br> ==== サービスの設定の確認 ==== docker-compose.ymlで記述されている設定を表示する。<br> docker compose config <br> ==== サービスログの確認 ==== サービスのログを表示する。<br> docker compose logs <br><br> __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Web]]
設定 - Docker Compose
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse