Ubuntu Server 26.04 で Docker Compose 環境を構築する手順メモ
新しいサーバーに Docker 環境を構築するたびに手順を確認していると時間がもったいないので、Ubuntu Server 26.04 を例にまとめました。
最後に、コマンド一つで環境を構築するインストールスクリプトも掲載しています。
前提環境
- Ubuntu Server 26.04 LTS
- root ユーザーまたは sudo 権限のあるユーザー
1. システムの更新
まずはシステムを最新の状態にします。
sudo apt update && sudo apt upgrade -y
2. 必要なパッケージのインストール
Docker のインストールに必要なパッケージを入れます。
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
3. Docker の公式 GPG キーを追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
4. Docker のリポジトリを追加
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. Docker のインストール
リポジトリを追加したら、Docker をインストールします。
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
インストール確認
docker --version
docker compose version
6. sudo なしで Docker を使う設定(オプション)
毎回 sudo をつけるのは面倒なので、自分のユーザーを docker グループに追加します。
sudo usermod -aG docker $USER
変更を反映するにはログアウトして再ログインが必要です。
反映確認:
groups
docker グループに含まれていれば OK です。
7. Docker Compose の基本的な使い方
ディレクトリ構成の例
Web アプリケーションを動かす場合の典型的な構成です。
my-app/
├── docker-compose.yml
├── app/
│ └── index.html
└── nginx/
└── default.conf
docker-compose.yml のサンプル
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./app:/usr/share/nginx/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
restart: unless-stopped
起動コマンド
cd my-app
docker compose up -d
確認と停止
# 実行中のコンテナを確認
docker compose ps
# ログを確認
docker compose logs -f
# 停止
docker compose down
実用的な例:WordPress 環境
WordPress と MySQL を Docker Compose で動かす場合です。
services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
restart: unless-stopped
volumes:
db_data:
起動:
docker compose up -d
ブラウザで http://localhost:8080 にアクセスすれば、WordPress のセットアップ画面が表示されます。
Docker Compose の便利なコマンド
| コマンド | 説明 |
|---|---|
docker compose up -d |
バックグラウンドで起動 |
docker compose down |
停止して削除 |
docker compose ps |
実行中のコンテナを表示 |
docker compose logs -f |
ログをリアルタイム表示 |
docker compose exec <service> bash |
コンテナ内にシェルで接続 |
docker compose pull |
イメージを最新に更新 |
docker compose restart |
再起動 |
よくあるトラブルと対処法
ポートが使われている場合
Error starting userland proxy: Bind for 0.0.0.0:80: address already in use
占用しているプロセスを確認します。
sudo lsof -i :80
不要なら停止します。
ボリュームの削除
docker compose down だけではボリュームは残ります。完全に削除するには:
docker compose down -v
注意: データベースのデータも削除されます。
イメージのキャッシュが古い場合
docker compose build --no-cache
docker compose up -d
インストールスクリプト
以下の一連の手順を自动化したスクリプトです。新しいサーバーに素早く環境を構築できます。
#!/bin/bash
# Docker Compose 環境セットアップスクリプト (Ubuntu Server 26.04)
# 使い方: sudo bash setup-docker.sh
set -e
echo "=== Docker Compose 環境セットアップ開始 ==="
# システム更新
echo "[1/6] システムを更新中..."
apt update && apt upgrade -y
# 必要なパッケージのインストール
echo "[2/6] 必要なパッケージをインストール中..."
apt install -y ca-certificates curl gnupg lsb-release
# Docker の GPG キーを追加
echo "[3/6] Docker の GPG キーを追加中..."
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
# Docker のリポジトリを追加
echo "[4/6] Docker のリポジトリを追加中..."
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker のインストール
echo "[5/6] Docker をインストール中..."
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# docker グループに追加
echo "[6/6] ユーザーを docker グループに追加中..."
usermod -aG docker $USER
echo ""
echo "=== セットアップ完了 ==="
echo ""
echo "バージョン確認:"
docker --version
docker compose version
echo ""
echo "注意: docker グループの変更を反映するには、"
echo " ログアウトして再ログインしてください。"
使い方
# スクリプトをダウンロードして実行
sudo bash setup-docker.sh
# 再ログイン後に動作確認
docker run hello-world
docker compose version
まとめ
| 手順 | 内容 |
|---|---|
| 1 | システムの更新 |
| 2 | 必要なパッケージのインストール |
| 3 | Docker の GPG キーとリポジトリの追加 |
| 4 | Docker のインストール |
| 5 | sudo なしで Docker を使う設定 |
- Docker Compose は
docker compose(スペースあり)が最新の構文です docker-compose(ハイフンあり)は廃止予定なので、新しいスクリプトでは使わない方が良い- ボリュームの管理には気をつける(
down -vでデータが消える)
公式ドキュメントも合わせて確認すると良いと思います。