AlmaLinuxにDocker Composeをインストールする方法|完全ガイド

Linux

コンテナ技術を使った開発やサーバー構築で、複数のコンテナを管理する場面が増えていますよね。

そんな時に欠かせないのがDocker Compose(ドッカー・コンポーズ)です。複数のコンテナを一括で起動・停止したり、コンテナ間の連携を簡単に設定できる便利なツールなんです。

この記事では、AlmaLinuxにDocker Composeをインストールする方法を、初心者の方にも分かりやすく解説します。複数のインストール方法や、インストール後の確認方法、そしてトラブルシューティングまで、実践的な内容をお届けしますよ!


スポンサーリンク
  1. Docker Composeとは?基本を理解しよう
    1. Docker Composeの役割
    2. Docker Composeの主なメリット
  2. 前提条件:Dockerのインストール
    1. Dockerがインストールされているか確認
    2. Dockerがインストールされていない場合
  3. 方法1:Docker公式の推奨方法でインストール
    1. Docker Compose V2とは
    2. インストール手順
    3. インストールの確認
  4. 方法2:GitHubから最新版を手動インストール
    1. インストール手順
    2. インストールの確認
  5. 方法3:pipでインストール(Python環境がある場合)
    1. 前提条件
    2. インストール手順
    3. インストールの確認
  6. どのインストール方法を選ぶべきか
    1. 推奨度
    2. 判断基準
  7. インストール後の確認と初期設定
    1. バージョン確認
    2. 権限の設定
    3. 動作確認
  8. Docker Composeの基本的な使い方
    1. 主要なコマンド
    2. docker-compose.ymlの基本構造
  9. 実用的な例:WordPress環境を構築
    1. docker-compose.ymlの作成
    2. WordPress環境を起動
    3. アクセス確認
    4. 停止と削除
  10. トラブルシューティング
    1. 「docker compose: command not found」エラー
    2. 「permission denied」エラー
    3. ポートが既に使用されている
    4. コンテナが起動しない
    5. メモリ不足エラー
    6. ネットワークエラー
  11. Docker Composeのアップデート方法
    1. プラグイン版のアップデート
    2. 手動インストール版のアップデート
  12. よくある質問(FAQ)
    1. Q1: V1とV2の違いは何ですか?
    2. Q2: V1とV2は併用できますか?
    3. Q3: docker-compose.ymlのバージョン番号は何ですか?
    4. Q4: 本番環境でDocker Composeを使うべきですか?
    5. Q5: docker-compose.ymlはどこに置くべきですか?
  13. まとめ:AlmaLinuxでのDocker Compose環境構築

Docker Composeとは?基本を理解しよう

まず、Docker Composeについて簡単に説明しましょう。

Docker Composeの役割

Docker Composeとは、複数のDockerコンテナを定義・管理するためのツールです。

例えば、Webアプリケーションを動かす時:

  • Webサーバー(Nginx)
  • アプリケーションサーバー(Python、Node.jsなど)
  • データベース(MySQL、PostgreSQLなど)
  • キャッシュサーバー(Redis)

これらのコンテナを一つのYAMLファイルで定義して、まとめて起動・停止できるんです。

Docker Composeの主なメリット

設定の一元管理
すべてのコンテナ設定を一つのファイル(docker-compose.yml)にまとめられます。

再現性が高い
同じ環境を別のサーバーでも簡単に再現できます。

開発効率の向上
複雑な構成も、コマンド一つで起動できるので、開発がスムーズになります。

コンテナ間の連携が簡単
ネットワークやボリュームの設定が直感的に書けます。


前提条件:Dockerのインストール

Docker Composeを使うには、まずDockerがインストールされている必要があります

Dockerがインストールされているか確認

以下のコマンドで確認できます:

docker --version

バージョンが表示されればOKです。

出力例:

Docker version 24.0.7, build afdd53b

Dockerがインストールされていない場合

AlmaLinuxにDockerをインストールする手順:

# 既存のDockerパッケージを削除(念のため)
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 必要なパッケージをインストール
sudo dnf install -y dnf-plugins-core

# Docker公式リポジトリを追加
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Dockerをインストール
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin

# Dockerサービスを起動
sudo systemctl start docker

# 自動起動を有効化
sudo systemctl enable docker

# 動作確認
sudo docker run hello-world

これでDockerの準備が整いました。


方法1:Docker公式の推奨方法でインストール

最も確実で推奨される方法です。Docker Compose V2(プラグイン版)をインストールします。

Docker Compose V2とは

Docker Compose V2は、Dockerのプラグインとして動作する新しいバージョンです。

従来のdocker-composeコマンドではなく、docker compose(ハイフンなし)として使います。

インストール手順

Docker公式リポジトリから既にインストールされている場合もありますが、念のため確認とインストールを行います。

# Docker Composeプラグインをインストール
sudo dnf install -y docker-compose-plugin

インストールの確認

docker compose version

出力例:

Docker Compose version v2.23.3

これで完了です!とても簡単ですね。


方法2:GitHubから最新版を手動インストール

より新しいバージョンが必要な場合や、手動でインストールしたい場合の方法です。

インストール手順

# 最新バージョンを確認(2025年1月時点ではv2.24.x系が最新)
# GitHubのリリースページで最新版を確認してください
# https://github.com/docker/compose/releases

# バイナリをダウンロード(バージョンは適宜変更)
DOCKER_COMPOSE_VERSION=v2.24.5
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 実行権限を付与
sudo chmod +x /usr/local/bin/docker-compose

# シンボリックリンクを作成(オプション)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

インストールの確認

docker-compose --version

出力例:

Docker Compose version v2.24.5

この方法では、docker-composeコマンド(ハイフンあり)として使えます。


方法3:pipでインストール(Python環境がある場合)

Python環境がある場合、pipを使ってインストールすることもできます。

前提条件

Pythonとpipがインストールされている必要があります。

# Python 3をインストール(未インストールの場合)
sudo dnf install -y python3 python3-pip

インストール手順

# pipでDocker Composeをインストール
sudo pip3 install docker-compose

インストールの確認

docker-compose --version

注意点:
この方法は、システムのPython環境を汚す可能性があるため、本番環境では推奨されません。開発環境やテスト環境での使用に留めましょう。


どのインストール方法を選ぶべきか

3つの方法を紹介しましたが、どれを選べばいいのでしょうか

推奨度

最も推奨:方法1(DNFでプラグイン版をインストール)

  • 公式が推奨する方法
  • パッケージ管理で更新も簡単
  • Docker本体との互換性が保証されている

次点:方法2(GitHubから手動インストール)

  • 最新版を使いたい場合
  • 特定のバージョンが必要な場合
  • 手動管理が苦にならない人向け

非推奨(特殊な場合のみ):方法3(pipでインストール)

  • Python環境が既にある場合のみ
  • 開発・テスト環境限定
  • 本番環境では避けるべき

判断基準

一般的な用途: 方法1を選択
最新機能が必要: 方法2を選択
Python開発環境: 方法3も選択肢に


インストール後の確認と初期設定

インストールが完了したら、動作確認をしましょう。

バージョン確認

# V2の場合(プラグイン版)
docker compose version

# V1の場合(スタンドアロン版)
docker-compose --version

権限の設定

Dockerコマンドを実行するたびにsudoを付けるのは面倒ですよね。一般ユーザーでもDockerを使えるようにしましょう。

# dockerグループにユーザーを追加
sudo usermod -aG docker $USER

# 変更を反映させるため、一度ログアウト・ログイン
# または以下のコマンドで新しいグループ権限を反映
newgrp docker

動作確認

簡単なdocker-compose.ymlファイルを作って、動作を確認します。

# 作業ディレクトリを作成
mkdir ~/docker-compose-test
cd ~/docker-compose-test

# docker-compose.ymlファイルを作成
cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  hello:
    image: hello-world
EOF

# コンテナを起動
docker compose up

# または V1の場合
docker-compose up

「Hello from Docker!」というメッセージが表示されれば成功です!


Docker Composeの基本的な使い方

インストールできたら、基本的なコマンドを覚えましょう。

主要なコマンド

コンテナを起動する

docker compose up

バックグラウンドで起動:

docker compose up -d

コンテナを停止する

docker compose down

コンテナの状態を確認

docker compose ps

ログを確認

docker compose logs

特定のサービスのログだけ見る:

docker compose logs サービス名

コンテナを再起動

docker compose restart

イメージを再ビルド

docker compose build

すべて削除(ボリュームも)

docker compose down -v

docker-compose.ymlの基本構造

Docker Composeの設定ファイルの基本的な書き方を理解しましょう。

version: '3.8'

services:
  # Webサーバー
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    networks:
      - app-network

  # データベース
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: myapp
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

volumes:
  db-data:

主な要素:

  • services:起動するコンテナを定義
  • image:使用するDockerイメージ
  • ports:ポートマッピング(ホスト:コンテナ)
  • volumes:データの永続化
  • networks:コンテナ間の通信設定
  • environment:環境変数の設定

実用的な例:WordPress環境を構築

Docker Composeの実践例として、WordPressとMySQLの環境を作ってみましょう。

docker-compose.ymlの作成

# 作業ディレクトリを作成
mkdir ~/wordpress
cd ~/wordpress

# docker-compose.ymlファイルを作成
cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress_data:/var/www/html

volumes:
  db_data:
  wordpress_data:
EOF

WordPress環境を起動

# バックグラウンドで起動
docker compose up -d

# 起動状態を確認
docker compose ps

アクセス確認

ブラウザで以下のURLにアクセスします:

http://サーバーのIPアドレス:8080

または、ローカルなら:

http://localhost:8080

WordPressのインストール画面が表示されれば成功です!

停止と削除

# 停止
docker compose down

# データも含めて完全に削除
docker compose down -v

トラブルシューティング

よくある問題と解決方法をまとめました。

「docker compose: command not found」エラー

原因:
Docker Composeがインストールされていない、またはパスが通っていません。

対処法:

# プラグイン版がインストールされているか確認
docker compose version

# インストールされていなければ再インストール
sudo dnf install -y docker-compose-plugin

「permission denied」エラー

原因:
Dockerを実行する権限がありません。

対処法:

# dockerグループに追加
sudo usermod -aG docker $USER

# ログアウト・ログインするか、以下を実行
newgrp docker

ポートが既に使用されている

原因:
指定したポートが他のプロセスで使われています。

対処法:

# ポート8080を使っているプロセスを確認
sudo lsof -i :8080

# docker-compose.ymlでポート番号を変更
# 例:"8080:80" → "8081:80"

コンテナが起動しない

原因:
設定ファイルの記述ミスや、イメージのダウンロード失敗など。

対処法:

# ログを詳しく確認
docker compose logs

# 設定ファイルの構文チェック
docker compose config

# イメージを再取得
docker compose pull

メモリ不足エラー

原因:
システムのメモリやディスク容量が不足しています。

対処法:

# 未使用のコンテナとイメージを削除
docker system prune -a

# ディスク使用量を確認
docker system df

ネットワークエラー

原因:
コンテナ間の通信がうまくいっていません。

対処法:

# ネットワークを再作成
docker compose down
docker network prune
docker compose up -d

Docker Composeのアップデート方法

時間が経つと、新しいバージョンが出ることがあります。

プラグイン版のアップデート

# パッケージを更新
sudo dnf update docker-compose-plugin

# バージョン確認
docker compose version

手動インストール版のアップデート

# 最新版をダウンロード(バージョンは適宜変更)
DOCKER_COMPOSE_VERSION=v2.24.5
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 権限を設定
sudo chmod +x /usr/local/bin/docker-compose

# バージョン確認
docker-compose --version

よくある質問(FAQ)

Q1: V1とV2の違いは何ですか?

A: Docker Compose V1は独立したバイナリで、docker-composeコマンドを使います。V2はDockerのプラグインとして動作し、docker compose(ハイフンなし)コマンドを使います。V2の方が高速で、Dockerとの統合も良いため、現在はV2が推奨されています。

Q2: V1とV2は併用できますか?

A: はい、可能です。ただし、混乱を避けるため、どちらか一方に統一することをおすすめします。

Q3: docker-compose.ymlのバージョン番号は何ですか?

A: ファイルの最初の行にあるversion: '3.8'などは、docker-compose.ymlファイルのフォーマットバージョンです。現在は3.83.9が一般的で、最新のDocker Composeではversionの指定は省略可能になっています。

Q4: 本番環境でDocker Composeを使うべきですか?

A: 小規模な環境では問題ありませんが、大規模な本番環境ではKubernetesなどのオーケストレーションツールの使用が推奨されます。Docker Composeは主に開発環境やテスト環境、小規模な本番環境に適しています。

Q5: docker-compose.ymlはどこに置くべきですか?

A: プロジェクトのルートディレクトリに置くのが一般的です。docker composeコマンドは、カレントディレクトリのdocker-compose.ymlを自動的に読み込みます。


まとめ:AlmaLinuxでのDocker Compose環境構築

AlmaLinuxにDocker Composeをインストールする方法をまとめます。

インストール方法:

推奨:DNFでプラグイン版をインストール

sudo dnf install -y docker-compose-plugin
docker compose version

手動:GitHubから最新版をインストール

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

基本コマンド:

  • docker compose up:起動
  • docker compose up -d:バックグラウンド起動
  • docker compose down:停止
  • docker compose ps:状態確認
  • docker compose logs:ログ確認

重要なポイント:

  • Docker本体のインストールが前提
  • プラグイン版(V2)が現在の推奨
  • 一般ユーザーでも使えるよう権限設定が必要
  • docker-compose.ymlで複数コンテナを一元管理
  • 開発環境の構築に非常に便利

トラブル時の対処:

  • ログを確認:docker compose logs
  • 設定をチェック:docker compose config
  • 権限を確認:sudo usermod -aG docker $USER
  • システムをクリーン:docker system prune

Docker Composeを使えば、複雑なマルチコンテナ環境も、コマンド一つで簡単に管理できます。開発効率が大幅に向上するので、ぜひマスターしてくださいね!

まずはWordPressなどの簡単な例から始めて、徐々に複雑な構成にチャレンジしていきましょう。


関連キーワード: AlmaLinux、Docker、Docker Compose、コンテナ、オーケストレーション、docker-compose.yml、マルチコンテナ、開発環境、WordPress、MySQL、インストール、トラブルシューティング

コメント

タイトルとURLをコピーしました