「Dockerを勉強したいけど、何から手をつければいいのかわからない…」

docker run コマンドを毎回オプション付きで実行するのが大変…」

「複数のコンテナを連携させる方法がよくわからない…」

そんな悩みを抱えているDocker初心者の方、Docker Compose から始めるのがおすすめです!

この記事では、Docker Composeがなぜ初心者におすすめなのか、その理由と基本的な使い方を解説します。

Docker Composeとは?

Docker Composeは、複数のコンテナをまとめて定義・管理できるツールです。YAML形式のファイル(docker-compose.yml)に、使用するイメージ、ポート番号、環境変数などを記述することで、コマンド一つで複数のコンテナを起動・停止できます。

なぜDocker Composeが初心者におすすめなのか?

Docker Composeが初心者におすすめな理由は、主に以下の3つです。

  1. コマンドがシンプル: docker-compose up だけで、複数のコンテナをまとめて起動できます。docker run コマンドを何度も実行する必要はありません。
  2. 設定がファイルで管理できる: docker-compose.yml に設定を記述することで、環境構築の手順を明確にできます。他の人と共有したり、バージョン管理したりするのも簡単です。
  3. 複数コンテナの連携が簡単: Webサーバーとデータベースなど、複数のコンテナを連携させるアプリケーションを簡単に構築できます。

Docker Composeの基本的な使い方

1. Docker Composeのインストール

Docker Desktop for Mac/Windows をインストールすれば、Docker Composeも一緒にインストールされます。Linuxの場合は、以下のコマンドでインストールできます。

Bash

# 例: Ubuntuの場合
sudo apt-get update
sudo apt-get install docker-compose-plugin

Docker EngineにDocker Composeプラグインをインストールする形が推奨されています。

2. docker-compose.yml ファイルの作成

docker-compose.yml という名前のファイルを作成し、以下のように記述します。

YAML

version: "3.9"
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password

この例では、nginx (Webサーバー) と mysql (データベース) の2つのコンテナを定義しています。

  • version: Docker Composeファイルのバージョンを指定します。
  • services: 起動するコンテナを定義します。
  • web: nginx コンテナの設定
    • image: 使用するDockerイメージ (nginxの最新版)
    • ports: ポートフォワーディングの設定 (ホストの8080番ポートをコンテナの80番ポートにマッピング)
  • db: mysql コンテナの設定
    • image: 使用するDockerイメージ (MySQL 8.0)
    • environment: 環境変数の設定 (MySQLのrootパスワードを設定)

3. コンテナの起動

docker-compose.yml ファイルがあるディレクトリで、以下のコマンドを実行します。

Bash

docker compose up -d

up コマンドは、docker-compose.yml に定義されたコンテナを起動します。-d オプションをつけると、バックグラウンドで実行されます。

4. コンテナの確認

以下のコマンドで、起動中のコンテナを確認できます。

Bash

docker compose ps

5. コンテナの停止

以下のコマンドで、コンテナを停止できます。

Bash

docker compose down

まとめ:Docker Composeで快適なDockerライフを!

Docker Composeを使えば、Dockerの環境構築がぐっと楽になります。コマンドがシンプルで、設定ファイルで管理でき、複数コンテナの連携も簡単。まさに、Docker初心者にとって最強のツールと言えるでしょう。

Docker Composeをマスターして、快適なDockerライフを送りましょう!

さらにステップアップ!

  • docker-compose.yml の詳細な設定: ボリューム、ネットワーク、依存関係など、より高度な設定を学ぶ。
  • Docker Composeと他のツールとの連携: Docker Swarmとの連携や、CI/CDパイプラインへの組み込みなどを学ぶ。
  • Dockerの基礎知識: Dockerイメージ、コンテナ、ネットワークなどの基礎知識を体系的に学ぶ。

これらのステップアップを通じて、Dockerをより深く理解し、実践的なスキルを身につけることができます。