Dockerを自動化として

Skip to content

これは機械翻訳されたテキストであり、誤りを含む可能性があります!

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

これは、手動でインストールされたソフトウェアを更新することと比較してください。その場合、ダウンロードして、設定して、何も壊れないことを願う必要があるかもしれません。

Easy 課題 1 - Docker Compose を使用して Nginx をセットアップ

docker-compose.yml を作成して Nginx Web サーバーを実行します。

  1. 新しいフォルダーを作成し、docker-compose.yml ファイルを作成します。
  2. ポート 80 で image: nginx:latest を使用してサービスを定義します。
  3. docker compose up -d を実行します。
  4. ブラウザで http://localhost にアクセスします。

Medium 課題 2 - サービスを追加する

課題 1 の docker-compose.yml に、さらに 1 つのサービスを追加してください。例えば:

すべてを docker compose up -d で起動し、両方のサービスが同時に実行されていることを確認してください。

概要

  • Docker Compose を使うと、複数のサービスを1つのファイルで定義できます。
  • Composeファイルは、設定とドキュメントの両方です。
  • Volumes はコンテナ外にデータを保存し、再起動後もデータを保持します。
  • 更新は docker compose pull + docker compose up -d です。
  • Docker は、サービスをサーバー間で簡単に移動できるようにします。