Docker Compose超入門 初心者でもすぐに使える基礎ガイド
投稿更新日: 2025/6/6

Dockerを使うとアプリの環境を簡単に構築出来ますが、複数のコンテナを扱う場合、コマンドが増えて面倒になることがあります。そんなときに役立つのが Docker Compose です!
本記事では、Docker Composeの基本から、よく使うコマンド、実際にNginxとExpress.jsを組み合わせたアプリの作成まで、ステップバイステップで解説します。
1. 事前準備:DockerとDocker Composeのインストール
Docker Composeを使用するには、まず Docker Desktop をインストールする必要があります。
Dockerのインストール
公式サイトからDockerをインストールします。
2. docker-compose.yml を作成してみよう
まずは簡単な docker-compose.yml を作成し、コンテナを管理する方法を学びましょう。
1つのサービスを定義
以下のYAMLファイルを作成し、nginxのWebサーバーを動かしてみます。
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
この例では web がサービス名になります。
起動
作成したファイルがあるディレクトリで、以下のコマンドを実行します。
docker-compose up -d-dはバックグラウンド実行のオプション- ブラウザで
http://localhostにアクセスすると、Nginxのデフォルトページが表示されます。
終了
docker-compose downこれでコンテナは停止・削除されます。
3. Docker Composeのよく使うコマンド
Docker Composeを使うと、複数のコンテナを一括で管理できます。ここでは、よく使うコマンドを順番に紹介します。
① コンテナを起動
docker compose updocker compose up を実行すると、docker-compose.yml に記載されたサービス(コンテナ)が起動します。
② バックグラウンドで起動
docker compose up -d-dをつけるとバックグラウンドで起動し、ターミナルを占有しません。
③ 特定のサービスのみ起動
docker compose up サービス名docker-compose.yml に定義されている特定のサービスだけを起動したい場合は、サービス名を指定します。
④ コンテナを停止&削除
docker compose down起動したコンテナを停止し、削除します。ネットワークも削除されるため、完全にクリーンな状態に戻したいときに便利です。
⑤ コンテナを停止
docker compose stop実行中のコンテナを停止します。ただし、コンテナ自体は削除されないため、後で docker compose start で再開できます。
⑥ 停止したコンテナを再開
docker compose startdocker compose stop で停止したコンテナを再び起動します。
⑦ コンテナを再起動
docker compose restartコンテナを再起動したいときに使います。設定を変更した場合などに便利です。
⑧ 実行中のコンテナを確認
docker compose ps現在動作しているコンテナの状態を一覧表示します。
⑨ コンテナのログを表示
docker compose logsコンテナの標準出力(ログ)を確認できます。
リアルタイムでログを追いたい場合は -f をつけます。
docker compose logs -f⑩ 特定のサービスのコンテナを削除
docker compose rm -fsv サービス名特定のサービスのみを削除するときに使用します。
オプションの意味:
-f強制削除-sボリュームも削除-v名前付きボリュームも削除
これらのコマンドを覚えておけば、Docker Composeをスムーズに扱えるようになります!
4. NginxとExpress.jsを組み合わせたアプリを作成
ここからは、カスタムの Dockerfile と docker-compose.yml を作成し、 NginxとExpress.jsを使ったHello Worldアプリ を実装します。
ディレクトリ構成
myapp/
│── docker-compose.yml
│── nginx/
│ └── default.conf
└── app/
├── Dockerfile
├── package.json
├── server.js1. Express.jsの準備
まず、app/ ディレクトリを作成し、その中に package.json を用意します。
{
"name": "docker-express",
"version": "1.0.0",
"main": "server.js",
"dependencies": {
"express": "^4.17.1"
}
}
次に、server.js を作成します。
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, World from Express.js!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
2. Express.jsのDockerfile
次に、app/ ディレクトリ内に Dockerfile を作成します。
FROM node:14
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
CMD ["node", "server.js"]
EXPOSE 3000
3. Nginxの設定
Nginxをリバースプロキシとして動作させます。nginx/ ディレクトリを作成し、default.conf を追加します。
server {
listen 80;
location / {
proxy_pass http://app:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
4. docker-compose.yml を作成
最後に docker-compose.yml をルートディレクトリに作成します。
version: '3'
services:
app:
build: ./app
ports:
- "3000:3000"
web:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
5. コンテナの起動
docker-compose up -dhttp://localhostにアクセスするとHello, World from Express.js!が表示されます。
まとめ
今回は Docker Composeの基本 から Nginx + Express.jsのWebアプリ を作るところまで解説しました。
学んだポイント
✅ Docker Composeの基本的なコマンド
✅ docker-compose.yml の書き方
✅ カスタム Dockerfile の作成
✅ NginxとExpress.jsの連携
Docker Composeを使えば、 複数のコンテナを簡単に管理できる ようになります。ぜひ試してみてくださいね。 🚀
この記事をシェアする
合同会社raisexでは一緒に働く仲間を募集中です。
ご興味のある方は以下の採用情報をご確認ください。