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 の高度なコンポーネント機能コンポーネントの使用シナリオとソースコード分析

目次導入使用シナリオソースコード分析要約する導入Vue は、コンポーネントをステートレスかつインスタ...

Javascript のスコープとクロージャの詳細

目次1. 範囲2. スコープチェーン3. 語彙の範囲5. 閉鎖の適用6. クロージャの欠陥7. 閉会...

MySQL 時間統計方法の概要

データベースの統計を行う場合、多くの場合、年、月、日に基づいてデータを収集し、echart を使用し...

MySQL例外に対する一般的な解決策をいくつか分析する

目次序文1. コードによって設定されたデータベース名またはパスワードがローカルデータベースと一致して...

Layuiテーブル行のデータを動的に編集する

目次序文スタイル機能説明初期化コードイベントリスナーの追加リスナーツールバーモニターテーブル行ツール...

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

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

Ubuntu 18.04 のインストールで「ldlinux.c32 のロードに失敗しました」というエラーが表示され、解決手順がわかりません

序文私は Win7 を搭載した古いラップトップを持っています。古いシステムを維持しながら、同時に U...

IIS web.config でクロスドメイン アクセスを設定する方法

要件: ページに画像を表示する必要がありますが、さまざまな理由により、画像はサーバー 2 にあります...

Vue+swiperでタイムライン効果を実現

この記事では、タイムライン効果を実現するためのvue+swiperの具体的なコードを参考までに共有し...

テーブルはセルとimg画像を結合してtd HTML全体を埋めます

ソースコード(一部のクラスは削除されています):コードをコピーコードは次のとおりです。 <テー...

あるテーブルからバッチデータをクエリし、それを別のテーブルに挿入する MySQL の完全な例

事前に言っておくNodejs はデータベースを非同期操作として読み取るため、データベースがデータを読...

MySQL コール初心者が犯しがちな 11 の間違いのまとめ

序文セキュリティ部門からSQLインジェクションやXSS攻撃の脆弱性などに関する警告メールを頻繁に受け...

MySQL 8.0.17 winx64 (Navicat 付き) 手動構成バージョンのインストール チュートリアル図

1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...

3 階層ナビゲーション メニューを実現するための js+css

この記事の例では、3レベルのナビゲーションメニューを実装するためのjs + cssの具体的なコードを...

WeChatアプレット開発によりホームページポップアップボックスアクティビティガイダンス機能が実現

目次1. 需要2. データベース設計3.Javaバックグラウンド構成の実装4. WeChatアプレッ...