
Last updated on
Dockerを使った開発環境構築の基本ステップ|初心者から始めるコンテナ開発入門
はじめに
Webエンジニアとして開発を進めていくと、必ず直面するのが「環境構築の問題」です。
- 「動くはずのアプリが、自分のPCでは動かない」
- 「チームメンバーの環境ごとにバグが出る」
- 「本番環境とローカル環境で挙動が違う」
こうしたトラブルを解決するために登場したのが Docker です。
この記事では、初心者でも理解できるように、Dockerを使った開発環境構築の基本ステップを解説します。
Dockerとは?
Dockerは「アプリケーションを動かすための環境」をコンテナという単位でまとめ、どこでも同じように実行できる仕組みです。
- 従来の環境構築
PCに直接ソフトをインストールして設定。人によって差が出やすい。 - Dockerの環境構築
環境をコードで定義して、誰でも同じ環境を一瞬で再現できる。
👉 これにより「動かない問題」が劇的に減ります。
Dockerのメリット
- 環境の再現性
どのPCでも同じ環境をすぐに構築できる。 - 軽量で高速
仮想マシンよりも軽く、立ち上げが速い。 - 複数環境を同時に扱える
PHP、Node.js、MySQLなどを同時に実行できる。 - 本番と同じ環境を再現できる
「ローカルでは動くけど本番で動かない」を防げる。
基本用語の理解
- イメージ(Image)
環境の設計図。Ubuntu + PHP + MySQLなどをまとめたもの。 - コンテナ(Container)
イメージを実際に実行したもの。 - Dockerfile
イメージを作るためのレシピ。 - docker-compose.yml
複数のサービス(Webサーバー、DBなど)を一括管理する設定ファイル。
Dockerのインストール
1. Docker Desktopの導入
- Windows/Macの場合:Docker公式サイトから「Docker Desktop」をインストール
- Linuxの場合:パッケージマネージャーでインストール
👉 インストール後、ターミナルで次を実行して確認。
docker --version
基本ステップ:Webアプリ環境を作る
ここでは Nginx + PHP + MySQL の環境を例にします。
1. ディレクトリを作成
mkdir myapp
cd myapp
2. Dockerfileを作成
php
用のDockerfileを用意。
FROM php:8.2-fpm
WORKDIR /var/www/html
👉 PHP環境の基本構成。
3. docker-compose.ymlを作成
version: '3.8'
services:
app:
build: .
volumes:
- .:/var/www/html
ports:
- "9000:9000"
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- .:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: myapp
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "3306:3306"
👉 アプリ(PHP)・Webサーバー(Nginx)・DB(MySQL)を一括で管理。
4. Nginxの設定ファイル
nginx.conf
を作成。
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass app:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
}
5. 起動する
docker-compose up -d --build
👉 ブラウザで http://localhost:8080
にアクセスするとアプリが表示される。
よく使うDockerコマンド
- コンテナ起動:
docker-compose up -d
- コンテナ停止:
docker-compose down
- ログ確認:
docker-compose logs -f
- コンテナに入る:
docker exec -it myapp_app_1 bash
👉 最低限これだけ覚えておけばOK。
初心者がつまずきやすいポイント
- ポートの競合
👉 別のアプリと同じポートを使っていると起動できない。 - ファイル権限の問題
👉 Mac/Linuxでよく発生。権限エラーはchmod
やchown
で解決。 - ビルドが遅い
👉 キャッシュを活用する、不要な依存関係を減らす。
Dockerを学ぶおすすめ教材
- Progate「Docker入門」
基礎概念を理解するのに最適。 - Udemy「Docker + k8s講座」
実践的なコンテナ開発を体系的に学べる。Udemy講座についてはこちらわかりやすく説明しています。
- 公式ドキュメント
最新情報をキャッチアップ。
実務での活用例
- 開発環境の共有:チーム全員が同じ環境で開発可能
- テスト環境構築:自動テストをDockerで実行
- CI/CDとの連携:GitHub ActionsやGitLab CIと組み合わせて自動デプロイ
👉 「環境構築が一瞬で終わる」ことで、開発スピードが大幅に上がります。
まとめ
- Dockerは 「動かない問題」を解決する環境構築ツール
- メリット:再現性・軽量・本番と同じ環境
- 基本ステップ:Dockerfile → docker-compose.yml → 起動
- 実務では開発・テスト・本番運用すべてに活用できる
👉 Webエンジニアを目指すなら、Dockerは避けて通れないスキルです。
関連記事
👉 はじめてのDocker Compose|誰でもできる開発環境の作り方
👉 Laravel Sail入門|開発環境をシンプルに整える基本ステップ
👉 はじめてのリモート開発|コードレビューをスムーズにするチェックリスト
👉 Git初心者が最初に覚えるべきコマンド10選|これだけでバージョン管理の基礎が身につく!