Docker-Composeコマンドの使い方の詳しい説明

Docker-Composeコマンドの使い方の詳しい説明

Docker コンテナはさまざまな方法で管理およびデプロイできます。 Docker コマンドを直接使用したり、多数の GUI ツール (Web ベースとデスクトップ クライアントの両方) のいずれかを使用したり、docker-compose ルートを使用したりできます。

Docker Compose とは何ですか? Docker Compose は、コンテナとコンテナ間の接続を作成するために使用されます。ただし、docker-compose コマンドは実際にははるかに多用途です。このコマンドを使用して、イメージの構築、コンテナのスケーリング、コンテナの修復、コンテナの出力の表示、コンテナのパブリック ポートの一覧表示などを行います。

では、docker-compose はどのように使用するのでしょうか? 見てみましょう。

Docker Compose をインストールするにはどうすればいいですか?

サーバーに Docker がすでにインストールされている場合でも、Docker Compose はインストールされていない可能性があります。 Docker Compose をインストールするには、次のコマンドを実行します。

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname 
-s)-$(uname -m)" -o /usr/local/bin/docker-compose 
sudo chmod +x /usr/local/bin/docker-compose

次のコマンドを使用してインストールを確認します。

docker-compose バージョン

いくつかのアプリケーションのバージョン番号が表示されます (図 A)。

図 A. Docker Compose がインストールされ、準備完了です。

Dockerファイル

コンテナをデプロイするために、Docker Compose は docker-compose.yml ファイルに依存します。このファイルは、Docker コンテナを特定の環境にデプロイするために使用されます。 WordPress コンテナをデプロイするとします。まず、次のコマンドを使用して新しいディレクトリを作成します。

mkdir ~/wordpressbuild

次のコマンドでこの新しいディレクトリに移動します。

cd ~/wordpressbuild

次のコマンドで新しい Docker Compose ファイルを作成します。

ナノ docker-compose.yml

次のコンテンツ (公式の Docker Compose ドキュメントから取得) をファイルに貼り付けます。

バージョン: '3.3' 
 
サービス: 
  デシベル: 
   イメージ:mysql:5.7 
   ボリューム: 
    -db_data:/var/lib/mysql 
   再起動: 常に 
   環境: 
    MYSQL_ROOT_PASSWORD: ワードプレス 
    MYSQL_DATABASE: ワードプレス 
    MYSQL_USER: ワードプレス 
    MYSQL_パスワード: wordpress 
  
 ワードプレス: 
   依存: 
    -db 
   画像: wordpress:最新 
   ポート: 
    - 「8000:80」 
   再起動: 常に 
   環境: 
    WORDPRESS_DB_HOST: db:3306 
    WORDPRESS_DB_USER: ワードプレス 
    WORDPRESS_DB_PASSWORD: ワードプレス 
    WORDPRESS_DB_NAME: ワードプレス 
ボリューム: 
  データベースデータ: {}

ファイルを保存して閉じます。

ここで、次のコマンドを使用してプロジェクトをビルドし、コンテナをデタッチモードでデプロイします。

docker-compose を起動します –d

このコマンドは、必要なすべてのイメージ (この場合は MySQL と Wordpress) をダウンロードし、ポート 8000 にサービスをデプロイします。 Web ブラウザで http://SERVER_IP:8000 (SERVER_IP はホスティング サーバーの IP アドレス) にアクセスすると、WordPress インストール ページが表示されます (図 B)。

図B. WordPressインストーラー

デプロイメントを確認するにはどうすればいいですか?

デプロイメントからのログを検査するとします。これを行うには、次のコマンドを実行します。

docker-compose ログ

以前のデプロイメントからの多くの情報が表示されます (図 C)。

図 C. WordPress の Docker Compose デプロイメントからのログの表示

このコマンドは、多くの情報を出力します (特に、多数のコンテナがデプロイされている場合)。代わりに、ログ ファイルを表示するサービスを指定できます。どのサービス名を使用するかはどのようにしてわかりますか? docker-compose.yml ファイルを確認してください。この例では、2 つのサービスがあります。

  • db: データベース
  • wordpress: WordPress コンテナ

したがって、WordPress サービスのログのみを表示したい場合、コマンドは次のようになります。

docker-compose ログ wordpress

次のように、ログ出力を表示することもできます (tail コマンドを使用する場合と同様)。

docker-compose ログ -f wordpress

WordPress サービスに新しい情報が記録されるたびに、ターミナル ウィンドウに表示されます (図 D)。

図D. WordPressサービスログを表示する

デプロイメントで使用されたポートを忘れた場合はどうすればよいでしょうか? docker-compose.yml ファイルを確認するか、docker-compose コマンドで port オプションを使用することができます。サービスの内部コマンドを知っておく必要があります。たとえば、WordPress はデフォルトでポート 80 を使用するので、これが内部ポートであることがわかります。しかし、ネットワーク接続ポートとして何を割り当てるのでしょうか? 次のコマンドで確認してみましょう。

docker-compose ポート wordpress 80

このコマンドの出力には、内部ポート 80 が外部ポート 8000 にマッピングされたことが示されます (図 E)。

図 E. Wordpress のポートマッピング

デプロイされたコンテナを覚えていない場合は、次のコマンドを実行できます。

docker-compose ps

出力には、デプロイされた各コンテナがリストされます (図 F)。

図F. コンテナリスト

まだ始まったばかり

これにより、Docker Compose の威力を実感していただけるはずです。次の記事では、docker-compose.yml ファイルを詳しく見て、独自のコンテナを構築する方法を説明します。

元のタイトル: docker-compose コマンドの使い方、著者: Jack Wallen

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • docker-composeをインストールする最も簡単な方法2つ
  • 一般的なDocker Composeコマンドの詳細な説明
  • Docker Compose チュートリアル
  • Docker-Compose の詳細な使用例
  • docker-composeの詳細なインストールと使用方法
  • Docker Compose 構成ファイルの記述とコマンドの使用例

<<:  mysql5.7.24 バージョンのインストール手順と解凍時に発生した問題の概要

>>:  Vueは動的クエリルール生成コンポーネントを実装します

推薦する

Alibaba Cloud Serverにプログラムをデプロイし、ドメイン名を使用して直接アクセスする方法の詳細な説明

何もすることがなかったので、学習用に最も安いAlibaba Cloudサーバーを購入しました。年間3...

MySQL 8.0 DDLアトミック機能と実装原則

1. DDLアトミック性の概要8.0 より前は、統一されたデータ ディクショナリ dd はありません...

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

2 級コンピュータ試験のための MySQL の知識ポイントとよく使用される MYSQL コマンド

2級コンピュータ試験のMySQL知識ポイントの基礎、一般的なMYSQLコマンドは次のとおりです。よく...

Linux カーネル デバイス ドライバー カーネル リンク リストの使用上の注意

/******************** * カーネルにおけるリンクリストの応用********...

MySQL で JSON 形式のフィールドをクエリする詳細な説明

作業開発プロセス中に、顧客の名前、携帯電話番号、ID カード、およびドキュメントの種類を動的に保存す...

Windows 7 で Python 3.4 を使って MySQL データベースを使用する

Python 3.4でMySQLデータベースを使用する詳細なプロセスは次のとおりです。 Window...

HTML 縦列表示テキストを使用してテキストを縦列で表示します

コードをコピーコードは次のとおりです。 <span style='display:bl...

JavaScript イベント委任の原則

目次1. イベント委任とは何ですか? 2. イベント委任の原則3. イベント委託の役割1. イベント...

JavaScript で localStorage を使用する方法

.NET の世界に参入したい開発者であれば、何が可能なのかを知る必要があります。 .NET Fram...

Vue 3.0 カスタムディレクティブの使い方

目次1. カスタム指示1. グローバルカスタム指示を登録する2. グローバルカスタム指示を使用する3...

ツールキット: Bootstrap よりも強力なフロントエンド フレームワーク

注: 現在、最も人気のフロントエンド フレームワークは Bootstrap と Foundation...

JavaScriptを使用してSMS認証コード間隔を送信する機能を実装する

多くのアプリやウェブサイトでは、ログインやアカウント登録の際にSMS認証コード1を送信する場所があり...

ウェブサイトのパフォーマンスを向上させるためのウェブサーバーの改善

<br />このシリーズの最初のセクションでは、Web サイトのパフォーマンスを向上させ...

HTML から PDF への変換事例の概要 (複数の画像を推奨)

仕事の都合上、最近 HTML を PDF に変換する機能について調べることに時間を費やしました。 H...