これは機械翻訳されたテキストであり、誤りを含む可能性があります!
Dockerはアプリケーションのデプロイを簡素化します。サーバーにソフトウェアを手動でインストールして設定する代わりに、すべてを構成ファイルで定義します。その結果、再現可能で、ポータブルで、セットアップが迅速になります。
Docker Composeとは?
Docker Composeを使用すると、複数のサービスを1つのファイル (docker-compose.yml) で定義できます。各サービスは、独自の構成を持つコンテナです。
services:
web:
image: nginx:latest
ports:
- "80:80"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000" # これはGrafanaサービスです。
1つのコマンドで全てを設定:
docker compose up -d
# Starter alle tjenester i bakgrunnen. — バックグラウンドで全てのサービスを開始します。
サービスを別のサーバーに移動する必要がありますか? ファイルをコピーして、同じコマンドを実行してください。 すべてが同一です。
なぜこれが自動化なのか
違いを考えてみましょう:
| 手動でのセットアップ | Docker Composeを使用した場合 |
|---|---|
| Nginxを手動でインストール | image: nginx:latest |
| ポートを設定 | ports: "80:80" |
| Grafanaを手動でインストール | image: grafana/grafana:latest |
| すべての手順をドキュメント化 | すべては.ymlファイルにドキュメント化 |
| 次のサーバーで全てを繰り返す | docker compose up -d |
Docker Composeファイルは*ドキュメントそのもの*です。 どのサービスが実行されているか、どのポートを使用しているか、どのように構成されているかを正確に記述しています。
有用な Docker コマンド
| コマンド | その機能 |
|---|---|
docker compose up -d | すべてのサービスをバックグラウンドで起動します |
docker compose down | すべてのコンテナを停止して削除します |
docker compose logs -f | ログをリアルタイムで追跡します |
docker compose pull | すべてのイメージの最新バージョンをプルします |
docker compose restart | すべてのサービスを再起動します |
docker ps | 実行中のコンテナを表示します |
ボリューム: コンテナ外にデータを保存する
コンテナは一時的なものです。コンテナを削除すると、すべてのコンテンツが失われます。データを保持するために、*ボリューム*を使用します。
services:
database:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: hemmelig # パスワードは秘密です
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
データベースファイルは、db-dataというボリュームに保存されます。コンテナを削除して再作成しても、データはそのまま残ります。
サービスの更新
Docker サービスを更新するのは簡単です:
# 最終バージョンを取得
docker compose pull
# 新しいバージョンで再起動
docker compose up -d
これは、手動でインストールされたソフトウェアを更新することと比較してください。その場合、ダウンロードして、設定して、何も壊れないことを願う必要があるかもしれません。
課題 1 - Docker Compose を使用して Nginx をセットアップ
docker-compose.yml を作成して Nginx Web サーバーを実行します。
- 新しいフォルダーを作成し、
docker-compose.ymlファイルを作成します。 - ポート 80 で
image: nginx:latestを使用してサービスを定義します。 docker compose up -dを実行します。- ブラウザで
http://localhostにアクセスします。
課題 2 - サービスを追加する
課題 1 の docker-compose.yml に、さらに 1 つのサービスを追加してください。例えば:
- Uptime Kuma をポート 3001 で
- Grafana をポート 3000 で
すべてを docker compose up -d で起動し、両方のサービスが同時に実行されていることを確認してください。
概要
- Docker Compose を使うと、複数のサービスを1つのファイルで定義できます。
- Composeファイルは、設定とドキュメントの両方です。
- Volumes はコンテナ外にデータを保存し、再起動後もデータを保持します。
- 更新は
docker compose pull+docker compose up -dです。 - Docker は、サービスをサーバー間で簡単に移動できるようにします。