Happy Web Engineer
Last updated on

Dockerを使った開発環境構築の基本ステップ|初心者から始めるコンテナ開発入門


はじめに

Webエンジニアとして開発を進めていくと、必ず直面するのが「環境構築の問題」です。

  • 「動くはずのアプリが、自分のPCでは動かない」
  • 「チームメンバーの環境ごとにバグが出る」
  • 「本番環境とローカル環境で挙動が違う」

こうしたトラブルを解決するために登場したのが Docker です。

この記事では、初心者でも理解できるように、Dockerを使った開発環境構築の基本ステップを解説します。


Dockerとは?

Dockerは「アプリケーションを動かすための環境」をコンテナという単位でまとめ、どこでも同じように実行できる仕組みです。

  • 従来の環境構築
     PCに直接ソフトをインストールして設定。人によって差が出やすい。
  • Dockerの環境構築
     環境をコードで定義して、誰でも同じ環境を一瞬で再現できる。

👉 これにより「動かない問題」が劇的に減ります。


Dockerのメリット

  1. 環境の再現性
    どのPCでも同じ環境をすぐに構築できる。
  2. 軽量で高速
    仮想マシンよりも軽く、立ち上げが速い。
  3. 複数環境を同時に扱える
    PHP、Node.js、MySQLなどを同時に実行できる。
  4. 本番と同じ環境を再現できる
    「ローカルでは動くけど本番で動かない」を防げる。

基本用語の理解

  • イメージ(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。


初心者がつまずきやすいポイント

  1. ポートの競合
    👉 別のアプリと同じポートを使っていると起動できない。
  2. ファイル権限の問題
    👉 Mac/Linuxでよく発生。権限エラーはchmodchownで解決。
  3. ビルドが遅い
    👉 キャッシュを活用する、不要な依存関係を減らす。

Dockerを学ぶおすすめ教材


実務での活用例

  • 開発環境の共有:チーム全員が同じ環境で開発可能
  • テスト環境構築:自動テストをDockerで実行
  • CI/CDとの連携:GitHub ActionsやGitLab CIと組み合わせて自動デプロイ

👉 「環境構築が一瞬で終わる」ことで、開発スピードが大幅に上がります。


まとめ

  • Dockerは 「動かない問題」を解決する環境構築ツール
  • メリット:再現性・軽量・本番と同じ環境
  • 基本ステップ:Dockerfile → docker-compose.yml → 起動
  • 実務では開発・テスト・本番運用すべてに活用できる

👉 Webエンジニアを目指すなら、Dockerは避けて通れないスキルです。


関連記事

👉 はじめてのDocker Compose|誰でもできる開発環境の作り方
👉 Laravel Sail入門|開発環境をシンプルに整える基本ステップ
👉 はじめてのリモート開発|コードレビューをスムーズにするチェックリスト
👉 Git初心者が最初に覚えるべきコマンド10選|これだけでバージョン管理の基礎が身につく!