前提
| 項目 | 内容 |
|---|---|
| 対象OS | Amazon Linux 2023 |
| 想定環境 | EC2インスタンス(t2.micro以上) |
| 目的 | DockerおよびDocker Compose(v2系)の導入 |
| 接続方法 | SSHでrootまたはsudoユーザーとして操作 |
1. Docker Engine のインストール
sudo dnf install -y docker
インストール後、サービスを有効化して起動します。
sudo systemctl enable docker
sudo systemctl start docker
状態確認:
sudo systemctl status docker
✅ active (running) になっていればOK。
動作確認:
docker run hello-world
✅ 下記メッセージが出れば成功:
Hello from Docker!
This message shows that your installation appears to be working correctly.
2. Docker Compose プラグインの導入
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
動作確認:
docker compose version
✅ 出力例:
Docker Compose version v2.29.2
3. Web+DB(PHP+MariaDB)テスト環境の構築
ディレクトリ構成:
compose-test/
├ app/
│ └ index.php
└ docker-compose.yml
└ Dockerfile
ディレクトリ作成:
mkdir -p ~/compose-test/app
cd ~/compose-test
app/index.php作成:
<?php
$pdo = new PDO('mysql:host=db;dbname=testdb', 'root', 'rootpass');
echo "<h2>Hello Docker Compose!</h2>";
?>
Dockerfile作成:
FROM php:8.2-apache
RUN apt-get update && docker-php-ext-install pdo pdo_mysql
docker-compose.yml作成:
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./app:/var/www/html
depends_on:
- db
db:
image: mariadb:10.5
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: testdb
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
起動・動作確認:
docker compose build --no-cache
docker compose up -d
状態確認:
docker ps
✅ 出力例:
CONTAINER ID IMAGE STATUS PORTS
abcd1234 compose-test-web Up 10 seconds 0.0.0.0:8080->80/tcp
efgh5678 mariadb:10.5 Up 10 seconds 3306/tcp
ブラウザで動作確認:
http://<EC2のパブリックIP>:8080
「Hello Docker Compose!」と表示されれば成功!
※Dockerfileとdocker-compose.ymlの2ファイルの中身について整理したくなり、別記事を書きました。