コンテナ技術を使った開発やサーバー構築で、複数のコンテナを管理する場面が増えていますよね。
そんな時に欠かせないのがDocker Compose(ドッカー・コンポーズ)です。複数のコンテナを一括で起動・停止したり、コンテナ間の連携を簡単に設定できる便利なツールなんです。
この記事では、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.8や3.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、インストール、トラブルシューティング


コメント