シンプルな Docker Compose プロジェクトの準備
このステップでは、シンプルな Docker Compose プロジェクトを準備します。LabEx 環境には Docker Compose がプリインストールされていないため、まずインストールを行います。Docker Compose はマルチコンテナ Docker アプリケーションを定義・実行するためのツールです。Compose では YAML ファイルを使用してアプリケーションのサービスを設定し、単一のコマンドで設定からすべてのサービスを作成・起動できます。
まず、Docker Compose をインストールしましょう。最新の安定版リリースをダウンロードし、実行可能にします。
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
インストール後、バージョンを確認してインストールを検証します。
docker-compose --version
出力にバージョン番号が表示されれば、Docker Compose が正しくインストールされたことが確認できます。
次に、シンプルな Docker Compose プロジェクトを作成します。プロジェクト用のディレクトリを作成し、その中にdocker-compose.ymlファイルを作成します。このファイルではnginxイメージを使用したシンプルな Web サービスを定義します。
プロジェクトディレクトリに移動します。
cd ~/project
プロジェクト用の新しいディレクトリ(例:my-web-app)を作成します。
mkdir my-web-app
cd my-web-app
nanoエディタを使用してdocker-compose.ymlファイルを作成します。
nano docker-compose.yml
docker-compose.ymlファイルに以下の内容を追加します:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
このdocker-compose.ymlファイルはwebという名前の 1 つのサービスを定義しています。このサービスはnginx:latest Docker イメージを使用し、ホストのポート 80 をコンテナのポート 80 にマッピングします。
Ctrl + X、次にY、そしてEnterを押してファイルを保存します。
これで、docker-compose upコマンドを使用してdocker-compose.ymlファイルで定義されたサービスを起動できます。-dフラグはコンテナをデタッチドモード(バックグラウンド)で実行します。
docker-compose up -d
このコマンドはnginx:latestイメージを(まだ存在しない場合)プルし、webサービスのコンテナを起動します。
docker psコマンドで実行中のコンテナの状態を確認できます。
docker ps
my-web-app_web_1(またはディレクトリ名に応じて類似の名前)というコンテナが実行中で、ポート 80 を転送しているのが確認できるはずです。
Web サーバーが実行中か確認するには、curlでアクセスします。
curl http://localhost
出力に Nginx のデフォルトウェルカムページの HTML が表示されれば、シンプルな Docker Compose プロジェクトが正しくセットアップされ実行されていることが確認できます。