Docker Compose の実践とまとめ

Docker Compose の実践とまとめ

Docker Compose は、Docker コンテナ クラスターのオーケストレーションを実現します。docker docker-compose.ymlファイルを通じてサービスとその必要な依存関係を定義し、テスト環境、本番環境、その他の環境で簡単に実行できます。

書類

製品マニュアル

Compose ファイル バージョン 3 リファレンス

Docker 入門から実践まで [中国語]

Composeをインストールする

Compose は Docker Engine に依存しているため、環境に Docker がインストールされていることを確認する必要があります。主に 2 つのステップに分かれている公式チュートリアルを参照してください。

# 1. Compose をダウンロードし、usr/local/bin/ ディレクトリのファイルのみを実行します。# ダウンロードに失敗した場合は、次の概要を参照してインストール用のアドレスを指定します。sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 2. Compose実行ファイルに実行権限を追加する sudo chmod +x /usr/local/bin/docker-compose

# ヘルプを表示し、インストールが成功したかどうかをテストするには、次のコマンドを入力します。docker-compose -h

Compose は、Docker の公式 GitHub リポジトリ docker/compose でオープンソース化されています。すべての Compose は、リポジトリのリリースで公開されます。ステップ 1 では、curl コマンドを使用して、リリースから実行可能ファイルをダウンロードします。uname uname -suname -mシステムのカーネル名とハードウェア アーキテクチャを読み取って、必要な Compose バージョンと一致させることができます。curl curl -L パラメータは、HTTP 要求がリダイレクトに従うようにし (デフォルトでは従いません)、-o (小文字の o) は、サーバーの応答をファイルとして保存し、usr/local/bin/ に直接ダウンロードします。ファイル名は docker-compose です。このパスは既に環境変数に含まれているため、ステップ 2 を完了して実行権限を追加すれば、どこからでも使用できます。

GitHub から直接ダウンロードすると遅くなります。次のアドレスからダウンロードできます。

# https://vuepress.mirror.docker-practice.com/compose/install/
sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

はじめる

Composeのテンプレートの指示はDockerのrunコマンドに関連するパラメータと非常に似ています。dockerコマンドを忘れた場合は、以前のブログを参照してください。Dockerの実践とコマンドのまとめ

Compose には 2 つの重要な概念があります。

  • サービス: アプリケーションのコンテナ。実際には同じイメージを実行する複数のコンテナインスタンスを含めることができます。
  • プロジェクト: docker-compose.ymlファイルで定義された一連の関連アプリケーション コンテナで構成される完全なビジネス ユニット

docker-compose.ymlの形式は次のとおりです。注意: YAML ファイルでは、キー値:インデントは階層を示します。インデントで使用するボリュームとネットワークは宣言する必要があることに注意してください。

#バージョンを指定: "3"
# サービスのコレクション:
  # サービスの 1 つ、サービス名: webapp
  ウェブアプリ:
    # サービスで使用する画像を指定します: examples/web
    # ポートマッピングポート:
      - 「80:80」
    # データ量:
      - "/データ"

使いやすい

Compose で Tomcat、MySQL、redis を起動し、 docker-compose.ymlを作成します。

バージョン: "3.0"

サービス:
  トムキャット:
    コンテナ名: mytomcat # --name
    イメージ: tomcat:8.0-jre8
    ポート:
      - 「8080:8080」
    ボリューム:
      - "tomcatwebapps:/usr/local/tomcat/webapps"
    ネットワーク:
      -ネットワーク
    # tomcatサービスはmysqlとredisに依存します
    依存:
      -MySQLについて
      - レディス
  マイスク:
    コンテナ名: mysql
    イメージ:mysql:5.7.32
    ポート:
      - 「3306:3306」
    ボリューム:
      - 「mysqldata:/var/lib/mysql」
      - 「mysqlconf:/etc/mysql」
    環境:
      -MYSQL_ROOT_PASSWORD=1234
    ネットワーク:
      ネットワーク:
  レディス:
    コンテナ名: redis
    イメージ: redis:5.0.10
    ポート:
      - 「6379:6379」
    ボリューム:
      - 「redisdata:/データ」
    コマンド: "redis-server --appendonly yes"
    ネットワーク:
      ネットワーク:

# 使用するボリュームとネットワークはボリュームを宣言する必要があります:
  tomcatwebアプリ: 
  mysqlデータ:
  mysqlconf:
  再データ: 

ネットワーク:
  # 「some_network」という名前のネットワークを宣言します:

docker-compose.ymlが配置されているパスでdocker-compose upを実行して、Compose プロジェクトを起動します。使用されているイメージがダウンロードされ、フォアグラウンドでログが実行されます。Ctrl + C で終了できます。

バックグラウンドでdocker-compose up -dを実行する必要がある場合は、 docker psを使用して、Compose が yaml に基づいて関連コンテナーを作成したかどうかを確認できます。docker docker-compose downを使用して Compose を停止し、自動的に作成されたブリッジを削除します。

ネットワークを表示するにはdocker network ls 、データ ボリュームを表示するにはdocker volume ls使用します。Compose によって定義されるネットワークまたはデータ ボリュームの名前の形式は、docker-compose.yml が配置されているフォルダーの名前にアンダースコアと YAML で定義された名前を加えたものです。「dockerfile」フォルダーに YAML ファイルを作成して起動すると、ネットワーク名はdockerfile_some_networkになります。

tomcat サービスは、 redis および mysql サービスに依存していることを示す、 depends_onを使用します。Compose は最初に依存関係を開始してから、それを起動します。

コマンドのソート

Docker Compose のコマンドは Docker のコマンドと似ています。--help パラメータを使用して、対応するコマンドの使用方法を照会できます。

docker-compose --help

デフォルトの起動テンプレート ファイルの名前は docker-compose.yml です。-f を使用してカスタム テンプレート ファイルを指定できます。config コマンドを使用して、テンプレート ファイルの構文が正しいかどうかを確認できます。

docker-compse には多くのサブコマンドも含まれています。
開始と停止関連: 上、下、再起動、停止、一時停止、一時停止解除

関連リソース: ps、top、kill、run

コンテナに入る: exec

ログの表示: ログ

多くのサブコマンドには、対象となる操作の特定のサービス名を続けることができます。以下は、1 つずつリストされているわけではありません。
docker-compose helpに続けてサブコマンド名を入力すると、その使用方法を問い合わせることができます。

# yaml で定義されたすべてのコンテナをバックグラウンドで起動します docker-compose up -d
#mysqlサービスのみを起動すると、依存するサービスも起動します
docker-compose up mysql は起動するサーバー名を指定します。
# コンテナを停止し、自動的に作成されたブリッジを削除します docker-compose down 
# すべてのサービスを再起動してから特定のサービスを指定します
docker-compose の再起動

# 一時停止と再開 docker-compose pause
docker-compose 一時停止解除

# redis サービスに入り、docker-compose exec redis bash を終了します

# 現在の yaml で定義されているコンテナの情報を一覧表示します docker-compose ps

# 現在の yaml で定義されているコンテナを削除します。まずコンテナを停止し、特定のサービスを指定する必要があります。
docker-compose rm

# 各サービスコンテナで実行中のプロセスを表示する docker-compose top

# デフォルトでログを表示します。すべての YAML ファイルを表示します。特定のサービスを追跡できます。
# -f は追跡を継続でき、新しいログはすぐに画面に表示されます docker-compose logs

参考文献

Curl の使い方ガイド [プログラミングの悪い人] Docker コンテナ技術と Docker-Compose の実践

Docker Compose の実践とまとめについてはこれで終わりです。より関連性の高い Docker Compose の実践コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker-compose チュートリアルのインストールとクイックスタート
  • Docker Compose は MySQL に接続するために SpringBoot プロジェクトをデプロイしますが、そこで遭遇する落とし穴があります。
  • Docker Composeでコンテナ管理の問題を解決する
  • Docker Compose のインストールと使用手順
  • Docker Compose ワンクリック ELK デプロイ方式の実装
  • docker compose helloworld を使い始めるための詳細なプロセス

<<:  Vue を使用して CSS トランジションとアニメーションを実装する方法

>>:  素晴らしいCSS属性MASKの詳しい説明

推薦する

MySql8.023 インストール プロセスの詳細なグラフィック説明 (初回インストール)

まず、MySQL公式サイトからインストールパッケージをダウンロードします。MySQLはオープンソース...

Windowsにmysql5.7をインストールする方法

まずmysqlの圧縮バージョンをダウンロードします。公式ダウンロードアドレスは123WORDPRES...

Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...

Angular 依存性注入の説明

目次概要1. 依存性注入2. Angularの依存性注入フレームワーク概要依存性注入: デザインパタ...

React-Dropzone をベースにアップロードコンポーネント機能を開発する (サンプルデモ)

今回はReact-Flaskフレームワーク上でアップロードコンポーネントを開発するスキルについてお話...

CSS フロート(float, clear)の人気の解説と体験談

私はかなり昔に CSS に触れましたが、フローティングについてはいつも混乱していました。私の理解が浅...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

初心者向けのMySQLデータベースとテーブルDDLの作成と操作の学習

目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...

Linux ファイルを分割するための split コマンドの詳細な説明

いくつかの簡単な Linux コマンドを使用すると、ストレージまたは電子メールの添付ファイルのサイズ...

完全なMySQL学習ノート

目次MyISAM と InnoDBパフォーマンスの低下と SQL の速度低下の理由: MySQL 実...

Bootstrap 3.0 学習ノートボタンスタイル

この記事では主にボタンのスタイルについて説明します。 1. オプション2. サイズ3. 活動状況4....

Hタグの定義と注意事項について簡単に説明します

結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...

Kubernetes コントローラーとラベルの簡単な分析

目次01 k8sの一般的なコントローラーRCコントローラーデプロイメント コントローラーステートフル...

JavaScript データのフラット化の詳細な説明

目次フラット化とは何か再帰トストリング減らすアンダーコア_.平坦化_。連合_。違い要約するフラット化...