シンプルな Docker Compose プロジェクトの準備
このステップでは、シンプルな Docker Compose プロジェクトを準備します。LabEx 環境には Docker Compose がプリインストールされていないため、まずインストールを行います。その後、簡単な Web アプリケーションと、それを定義・実行するための Docker Compose ファイルを作成します。
まず、Docker Compose をインストールしましょう。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 のバージョンを確認してインストールを検証します。
docker-compose --version
出力にインストールされた Docker Compose のバージョンが表示されるはずです。
続いて、シンプルな Web アプリケーションを作成します。基本的な Python Flask アプリケーションを使用します。プロジェクト用のディレクトリを作成し、移動します。
mkdir my-web-app
cd my-web-app
my-web-app
ディレクトリ内に、以下の内容でapp.py
ファイルを作成します:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Docker Compose!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
これは「Hello, Docker Compose!」を返すシンプルな Flask アプリケーションです。
次に、Flask アプリケーション用の Docker イメージをビルドするためのDockerfile
が必要です。my-web-app
ディレクトリ内に以下の内容でDockerfile
を作成します:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
この Dockerfile は、Python 3.9 のスリムイメージを使用し、作業ディレクトリを設定し、requirements.txt
から依存関係をコピーしてインストールし、アプリケーションコードをコピーし、ポート 5000 を公開し、アプリケーションを実行するコマンドを指定します。
Flask の依存関係用にrequirements.txt
ファイルも必要です。my-web-app
ディレクトリ内に以下の内容でrequirements.txt
を作成します:
Flask==2.2.2
最後に、サービスを定義するdocker-compose.yml
ファイルを作成します。my-web-app
ディレクトリ内に以下の内容でdocker-compose.yml
を作成します:
version: "3.8"
services:
web:
build: .
ports:
- "5000:5000"
このdocker-compose.yml
ファイルはweb
という名前のサービスを定義しています。カレントディレクトリ (.
) のDockerfile
を使用してイメージをビルドし、ホストのポート 5000 をコンテナのポート 5000 にマッピングするように指示します。
では、Docker Compose を使用してサービスをビルド・実行しましょう。~/project/my-web-app
ディレクトリにいることを確認してください。
docker-compose up -d
このコマンドは、イメージをビルドし(まだビルドされていない場合)、web
サービスのコンテナを作成し、デタッチドモード (-d
) で起動します。
docker ps
コマンドを使用してコンテナが実行中か確認できます。
docker ps
my-web-app-web-1
サービスのコンテナが実行中であることが表示されるはずです。
アプリケーションが動作していることを確認するには、curl
を使用してアクセスします。
curl http://localhost:5000
「Hello, Docker Compose!」という出力が表示されるはずです。