サービスとネットワークを含むシンプルな Compose ファイルを準備する
このステップでは、2 つのサービスと 1 つのネットワークを定義するシンプルな Compose ファイルを準備します。開始前に、環境にプリインストールされていないため Docker Compose をインストールする必要があります。
まず、Docker Compose バイナリをダウンロードします。プリインストールされている Docker バージョンと互換性のある 1.29.2 バージョンをダウンロードします。
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
このコマンドは、公式 GitHub リリースページから Docker Compose バイナリをダウンロードし、/usr/local/bin/docker-composeに保存します。$(uname -s)と$(uname -m)の部分は、OS とアーキテクチャを自動検出して適切なバイナリをダウンロードします。
次に、ダウンロードしたバイナリに実行権限を付与します。
sudo chmod +x /usr/local/bin/docker-compose
インストールを確認するために、Docker Compose のバージョンを確認します。
docker-compose --version
コンソールにバージョン情報が表示されれば、Docker Compose が正しくインストールされています。
Docker Compose がインストールされたので、プロジェクト用のディレクトリを作成し移動します。~/projectディレクトリ内にmy-compose-appというディレクトリを作成します。
mkdir ~/project/my-compose-app
cd ~/project/my-compose-app
このディレクトリ内にdocker-compose.ymlファイルを作成します。このファイルでサービスとネットワークを定義します。nanoエディタを使用してファイルを作成・編集します。
nano docker-compose.yml
以下の内容をdocker-compose.ymlファイルに貼り付けます。このファイルはwebとredisの 2 つのサービス、およびapp-networkというネットワークを定義しています。
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
networks:
- app-network
redis:
image: redis:latest
networks:
- app-network
networks:
app-network:
driver: bridge
このdocker-compose.ymlファイルの内容を解説します:
version: '3.8' Docker Compose ファイルフォーマットのバージョンを指定
services: アプリケーションを構成するサービスを定義
web: webという名前のサービス
image: nginx:latest 最新のnginxイメージを使用
ports: - "80:80" ホストマシンのポート 80 をコンテナのポート 80 にマッピング
networks: - app-network webサービスをapp-networkに接続
redis: redisという名前のサービス
image: redis:latest 最新のredisイメージを使用
networks: - app-network redisサービスをapp-networkに接続
networks: サービスが使用するネットワークを定義
app-network: app-networkという名前のネットワーク
driver: bridge デフォルトのブリッジドライバを使用
Ctrl + X、Y、Enterの順でファイルを保存します。
サービスを起動する前に、必要な Docker イメージをプルします。nginx:latestとredis:latestイメージをプルします。
docker pull nginx:latest
docker pull redis:latest
これらのコマンドは、指定されたイメージを Docker Hub からローカルマシンにダウンロードします。