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は動的クエリルール生成コンポーネントを実装します

推薦する

Vue のグローバル ウォーターマーク実装例

目次1. 透かしのJsファイルを作成する2. 導入操作2.1 App.vueや他のページでの参照2....

CentOS8 で MySQL 8.0 をインストールしてデプロイする方法

MySQL 8 の公式バージョン 8.0.11 がリリースされました。公式発表によると、MySQL ...

HTMLページのネイティブVIDEOタグはダウンロードボタン機能を隠します

Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...

Linux の高並列性とパフォーマンス最適化の落とし穴の紹介

目次序文Linux アプリケーション実行中に開いているファイルが多すぎる問題の分析と解決Linux ...

Nginx は動的と静的の分離を実装します 例の説明

ウェブサイトの解析を高速化するために、動的ページと静的ページを異なるサーバーで解析して、解析速度を向...

Docker コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題

目次コンテナデータボリュームとはコンテナ データ ボリュームが必要なのはなぜですか?使用データボリュ...

プロジェクトにおけるVue3のロジック抽出とフィールド表示についての簡単な説明

目次論理階層化異なる地域から事業を分離するこれを実行する利点このようなシナリオにどう対処するか最適化...

MySQLの自己接続と結合の詳細な理解

1. MySQL 自己接続MySQL では、情報を照会するときに自分自身に接続 (自己接続) する必...

Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします

目次DockerファイルドキュメントJenkins の設定Spring Boot プロジェクトでは、...

Linux で MySQL スケジュール タスク バックアップ データを実装する方法

序文バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...

Django2.* + Mysql5.7 開発環境統合チュートリアル図

環境: 10.12 の新機能Python 3.6 MySQL 5.7.25 の場合ジャンゴ 2.2....

6つのレイアウトでのFrameLayoutの使用

序文前回はLinearLayoutについて説明しました。今回はFrameLayoutの使い方を説明し...

CSS+JS で水滴の波紋アニメーション ボタン効果を実装するサンプル コード

コードは次のようになります。 <!DOCTYPE html> <html lang...

Docker Swarmを使用してWordPressを構築する方法

原因かつて私は Vultr に WordPress を設定しましたが、よく知られている理由により、こ...

jsのディープコピーを理解しましょう

目次js ディープコピーデータ保存方法浅いコピー/深いコピーとは何か一般的なディープコピーの実装1....