ブログに戻る

Ubuntu 20.04にDocker Composeをインストールして設定する方法

Ubuntu 20.04にDocker Composeをインストールして設定する方法

はじめに

コンテナ化は、近年ソフトウェア技術分野で大きな勢いを見せています。これは、Dockerのおかげと言えます。Dockerは、コンテナ内のプロセス管理を簡素化するコンテナプラットフォームです。

コンテナは、軽量で仮想化された、ポータブルな、ソフトウェア定義の標準化された環境であり、物理ホストマシン上で実行されている他のソフトウェアから隔離してソフトウェアを実行できるようにします。このポータビリティ機能により、開発者はアプリケーションを隔離されたサービスにモジュール化できます。さらに、独立して提供できるため、スケーリングの余地が生まれます。

アプリケーションを複数のサービスに分割することは間違いなく素晴らしいことですが、複数のコンテナを管理するというオーバーヘッドが伴います。コンテナ同士が通信し、同時に起動およびシャットダウンするようにしなければなりません。これを簡単にしてくれるのが、Docker Composeというツールです。Docker Composeを使用すると、開発者はYAMLファイルで定義されたルールを使用して、マルチコンテナのDockerアプリケーションを実行できます。YAMLファイルには、アプリケーションサービスと、それらがデータボリュームやネットワークを共有する方法の定義が含まれています。サービスを定義すれば、1つのコマンドですべてを起動できます。このチュートリアルでは、Ubuntu 20.04でDocker Composeをインストール、設定、および開始する方法を説明します。

前提条件

に関するチュートリアルを参照してください。

Docker Composeの最新の安定版を、その公式GitHubリポジトリからダウンロードします。最新バージョンはリリース(releases)ページで確認できます。このチュートリアル執筆時点での最新バージョンは1.28.5.

です。まず、非ルートのsudoユーザーでUbuntuサーバーにログインし、次のコマンドを入力します。これにより、最新リリース(1.28.5)がダウンロードされ、実行ファイルが/usr/local/bin/docker-composeディレクトリに保存されます。これにより、docker-composeとしてグローバルにアクセスできるようになります:

ダウンロードが完了したら、次のコマンドを入力して、docker-composeコマンドを実行可能にするための適切な権限を設定します:

次に、以下のコマンドを実行して、インストールが成功し、コマンドが呼び出せることを確認します:

以下のような出力が表示されるはずです:

docker compose version

これで、システムにDocker Composeが正常にインストールされたことが確認されました。

ステップ 2: docker-compose.yml ファイルの作成

の扱い方を理解するために、docker-compose.yml、公式のNginxイメージDocker Hub提供)を使用してWebサーバー環境を設定します。デプロイすると、コンテナから基本的なHTMLページを提供できるようになります。

作業を行うホームフォルダ内に作業ディレクトリを作成します。次のコマンドを入力してディレクトリを作成します:

次に、そのディレクトリに移動します:

ディレクトリに入ったら、Nginx環境のドキュメントルートとなるアプリケーションフォルダを作成します。このフォルダの名前はapp:

  • HTMLページの作成

テキストエディタのnanoを使用して、appフォルダ内にindex.htmlファイルを作成しましょう:

次に、以下のHTMLコードをファイルに追加します:

ファイルを保存するには、CTRL + O、ENTERを押します。次に、CTRL + Xで閉じます。次に、プロジェクトのルート内にdocker-compose.yml ファイルを作成します。

  • docker-composeを使用したHTMLページのホスティング

次に、以下のコマンドを入力して、ファイルをnano エディタで開きます:

その後、ファイル内に次のコードスニペットを追加します:

この docker-compose.yml ファイルは、使用している設定バージョンをDocker Composeに伝えるバージョン番号から始まります。詳細については、次のリンクを参照してください:Docker Composeのバージョン管理.

バージョン番号の後には、環境を構成するサービスを含むservicesブロックがあります。このチュートリアルでは、という名前の単一のサービスのみを指定しています。webserver。この webserver サービスは、nginx:alpine イメージを使用します。また、ポートのリダイレクト 8000:80 も定義しました。これは、ホストマシンのポート 8000 からのすべてのリクエストが、ポート 80 のwebserverコンテナ(Nginxが動作している場所)にリダイレクトされることを意味します。

volumesディレクティブを使用すると、ホストマシンとコンテナの間に、データを永続化するために使用できる共有ボリュームを作成できます。私たちのyml コードスニペットでは、ローカルのapp フォルダをコンテナと共有しています。コンテナ内では、このフォルダは /usr/share/nginx/html に配置されます。したがって、Nginxのデフォルトのドキュメントルートが上書きされます。これでファイルを保存して閉じることができます。

ここまでに、サンプルのHTMLウェブページと、コンテナ化されたウェブサーバー環境を構築するための指示が含まれたdocker-compose.ymlファイルを作成しました。次のステップで、このセットアップを起動する方法を見てみましょう。

ステップ 3: Docker Composeコマンドの実行

このステップでは、コンテナ化された環境を起動するためのコマンドを実行します。以下は、Dockerイメージのダウンロードプロセスを初期化し、webserverサービスのコンテナを作成し、バックグラウンドでコンテナ化された環境を起動する単一のコマンドです。

Dockerは高速かつ効率的に動作するように設計されているため、上記のコマンドを実行すると、まずローカルシステムに定義されたイメージがあるかどうかを確認します。存在しない場合は、Docker Hubリポジトリから取得します。以下のような出力が表示されるはずです。

 compose up

コマンドの実行が完了すると、バックグラウンドでコンテナ環境が起動します。実行中であることは、次のコマンドを使用して確認できます。

以下のような出力が表示されるはずです。

 compose ps

サーバーのIPアドレスまたはドメイン名にアクセスし、ポート8000を追加すると(例: server_domain_or_IP:8000 )、作成したサンプルのHTMLページが表示されるはずです。

docker compose webpage

覚えているかと思いますが、コンテナとホストシステムの間で共有ボリュームを設定しました。これにより、コンテナ内のファイルがホストシステム上のファイルと同期されます。したがって、 index.html ファイルに変更を加えると、自動的にコンテナと同期され、ブラウザでページを再読み込みしたときに反映されます。nanoエディタで試してみることができます。次のステップで、さらにいくつかのコマンドを学びましょう。

ステップ 4: コンテナ環境を管理するための追加のDocker Composeコマンド

単一の docker-compose-up コマンドを使用してウェブページのデプロイに成功したので、コンテナ化された環境の管理に役立つ追加のコマンドをいくつか見てみましょう。

まずはlogsコマンドから始めます。ログは、アプリケーションの障害をトラブルシューティングする際に非常に重要です。まず、次のコマンドを実行して、Nginxコンテナによって生成されたログを表示します。

以下はログの出力例です:

 logs

次のコマンドを使用すると、コンテナの状態を変更せずに環境の実行を一時停止できます。

 compose pause

次に、実行を再開(一時停止を解除)するには、次のコマンドを使用します。

docker compose unpause

データを破棄せずにコンテナを停止したい場合があります。そのためには、次のコマンドを使用します。

stop

コンテナ化された環境に関連付けられているコンテナ、ネットワーク、およびボリュームを破棄するには、次のコマンドを使用します。

docker compose down

上記のコマンドは、Docker Composeが環境を起動するために使用するベースイメージを削除しないことに注意してください。これにより、ローカルマシンに一致するイメージがあるか確認されるため、環境を起動する際のビルドが高速になります。ベースイメージを完全に削除したい場合は、コマンドで指定する必要があります。この例では、nginx:alpine イメージを次のコマンドで削除できます:

 image remove

最後に、公式の Docker Compose Command-line reference ドキュメントでより多くのコマンドを確認できます。

まとめ

このチュートリアルでは、Ubuntu 20.04にDocker Composeをインストールし、Nginx Webサーバーイメージに基づくコンテナ化された環境を作成し、Docker Composeコマンドを使用してさまざまなサービスを管理する方法を学びました。

複数のコンテナに依存する実際の動的アプリケーションをデプロイする方法を学びたい場合は、Docker Composeを使用したLaravel、Nginx、およびMySQLのデプロイ に関するチュートリアルをご覧ください。また、docker-composeコマンドの完全なリストは、公式の Docker Compose ドキュメントで確認できます。.

ハッピーコンピューティング!

author

Pranay Kapgate

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。