シンプルな Docker Compose プロジェクトの準備
このステップでは、シンプルな Docker Compose プロジェクトを準備します。Docker Compose は、マルチコンテナ Docker アプリケーションを定義・実行するためのツールです。Compose では YAML ファイルを使用してアプリケーションのサービスを設定し、単一のコマンドで設定からすべてのサービスを作成・起動できます。
LabEx 環境には Docker Compose がプリインストールされていないため、まずインストールする必要があります。Docker Compose バイナリをダウンロードし、実行可能にします。
まず、Docker Compose バイナリをダウンロードします。最新の安定版リリースをcurl
でダウンロードします。
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
このコマンドは、システムアーキテクチャに合った Docker Compose バイナリをダウンロードし、/usr/local/bin/docker-compose
に保存します。
次に、ダウンロードしたバイナリを実行可能にします。
sudo chmod +x /usr/local/bin/docker-compose
このコマンドで Docker Compose バイナリに実行権限を追加します。
インストールを確認するため、Docker Compose のバージョンを確認しましょう。
docker-compose --version
出力にインストールされた Docker Compose のバージョンが表示されれば、インストールは成功です。
Docker Compose がインストールされたので、シンプルな Docker Compose プロジェクトを作成します。プロジェクト用のディレクトリを作成し、その中にdocker-compose.yml
ファイルを作成します。
まず、ホームディレクトリにmy-compose-app
というディレクトリを作成します。
mkdir ~/project/my-compose-app
新しく作成したディレクトリに移動します。
cd ~/project/my-compose-app
次に、docker-compose.yml
ファイルを作成します。このファイルでアプリケーションのサービスを定義します。nano
を使用してファイルを作成・編集します。
nano docker-compose.yml
nano
エディタ内で、以下の内容を貼り付けます:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: ubuntu:latest
command: tail -f /dev/null
このdocker-compose.yml
ファイルの内容を説明します:
version: '3.8'
- Docker Compose ファイルフォーマットのバージョンを指定
services:
- アプリケーションを構成するサービスを定義
web:
- web
という名前のサービスを定義
image: nginx:latest
- このサービスがnginx:latest
Docker イメージを使用することを指定。イメージがローカルにない場合、Docker Compose が Docker Hub から取得
ports:
- ホストマシンのポート 80 をweb
コンテナのポート 80 にマッピング
app:
- app
という名前のサービスを定義
image: ubuntu:latest
- このサービスがubuntu:latest
Docker イメージを使用することを指定
command: tail -f /dev/null
- app
コンテナ起動時に実行するコマンドを指定。このコマンドでコンテナが終了せずに実行され続ける
Ctrl + X
、次にY
、そしてEnter
を押してファイルを保存します。
サービスを起動する前に、必要な Docker イメージが利用可能か確認します。Docker Compose はイメージが存在しない場合に自動的に取得しますが、特にインターネットアクセスが制限された環境や起動を速くしたい場合には、事前に明示的に取得するのが良いプラクティスです。
まず、nginx:latest
イメージを取得します。
docker pull nginx:latest
このコマンドで Docker Hub からnginx:latest
イメージをダウンロードします。
次に、ubuntu:latest
イメージを取得します。
docker pull ubuntu:latest
このコマンドで Docker Hub からubuntu:latest
イメージをダウンロードします。
これで、web
とapp
の 2 つのサービスを持つシンプルな Docker Compose プロジェクトの準備が完了し、必要な Docker イメージも取得できました。