🔰はじめての方へ

【初心者でもわかる】 Docker Desktopを導入してプロジェクトで使えるようにする方法

Docker
記事内に広告が含まれています。
スポンサーリンク

はじめに

Dockerを使うには、まず Docker Desktop というアプリをインストールする必要があります。

この記事では、Docker Desktopのインストールから、プロジェクトで使い始めるまでの手順をまとめます。

Dockerは奥が深いようで、かなりの勉強が必要です。

Docker Desktopを使用すればとても簡単に、サイト制作に役立てることができます!

初心者でもわかるようにAIに教えてもらいました!


STEP 1:Docker Desktopをインストールする

Mac の場合

  1. Docker Desktop公式サイト にアクセス
  2. 「Download for Mac」をクリック
    • Apple Silicon(M1/M2/M3/M4) の場合:「Apple Silicon」を選択
    • Intel Mac の場合:「Intel Chip」を選択
  3. ダウンロードされた .dmg ファイルを開く
  4. Docker のアイコンを Applications フォルダにドラッグ&ドロップ
  5. Applications から Docker を起動
  6. 初回起動時に権限の許可を求められるので「OK」を押す

Windows の場合

  1. Docker Desktop公式サイト にアクセス
  2. 「Download for Windows」をクリック
  3. ダウンロードされた .exe ファイルを実行
  4. インストーラーの指示に従って進める
  5. 「WSL 2」を有効にするか聞かれたら、有効にする(推奨)
  6. インストール完了後、PCを再起動
  7. Docker Desktop を起動

STEP 2:インストールできたか確認する

ターミナル(Macの場合)またはコマンドプロンプト(Windowsの場合)を開いて、以下のコマンドを実行します。

docker --version

バージョンが表示されればOKです。

Docker version 27.x.x, build xxxxxxx

もう1つ確認します。

docker compose version
Docker Compose version v2.x.x

これも表示されれば準備完了です。


STEP 3:プロジェクトにDockerファイルを用意する

Docker Desktopはあくまで Dockerを動かすためのアプリ です。

実際にどんなサーバーを立てるかは、プロジェクトごとに設定ファイルを用意 する必要があります。

各プロジェクトに最低限必要なファイルは以下の通りです。

プロジェクト/
├── docker-compose.yml      ← ① 
├── docker/
│   └── Dockerfile          ←② 
└── apache-config.conf    ←③ 

簡単なサイト制作は①〜③のファイルで動きます。

各ファイルに書くコード例を紹介します。

① docker-compose.yml

services:
  web:
    build: .
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
    environment:
      - PHP_DISPLAY_ERRORS=1
      - PHP_ERROR_REPORTING=E_ALL

② Dockerfile

FROM php:8.2-apache

# 必要なPHP拡張機能をインストール
RUN docker-php-ext-install pdo pdo_mysql

# ↓ DB使用時は以下を追加(なくても動く)
RUN apt-get update && apt-get install -y libonig-dev && docker-php-ext-install mbstring

# Apacheの設定
RUN a2enmod rewrite

# 作業ディレクトリを設定
WORKDIR /var/www/html

# ソースコードをコピー
COPY . /var/www/html/

# Apacheの設定ファイルをコピー
COPY apache-config.conf /etc/apache2/sites-available/000-default.conf

# パーミッションの設定
RUN chown -R www-data:www-data /var/www/html

③ apache-config.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

STEP 4:Dockerを起動する

ターミナルでプロジェクトフォルダに移動して、以下のコマンドを実行します。

cd プロジェクト名

docker compose up --build

初回はサーバーの構築があるので数分かかります。以下のようなログが流れます。

[+] Running 4/4
 ✔ Container project-db-1          Started
 ✔ Container project-php-1         Started
 ✔ Container project-web-1         Started
 ✔ Container project-phpmyadmin-1  Started

全て「Started」と表示されたら起動成功です。


STEP 5:ブラウザで確認する

大体は下記にアクセスすればみれます👇

http://localhost:8080

実際のポート番号の意味はこんな感じです👇

ポート何が見えるかいつ使うか
localhost:80 または localhostWebサイトの表示確認常に使う
localhost:8080phpMyAdmin(DB管理画面)DBを使う時だけ

※ データベースを使うプロジェクトでphpMyAdminを設定している場合は、http://localhost:8080 でDB管理画面も開けます。

ポート番号の書き方

ports:
  - "左側:右側"
位置意味
左側ブラウザでアクセスする時のポート番号(自分のPC側)
右側Docker内のサーバーが使うポート番号(変えない)

なので

左側だけ変える、右側は80のまま です。

右側の 80 はNginxがDocker内部で待ち受けているポートなので、変えるとNginxが動かなくなります。

具体例

# localhost でアクセス(ポート80は省略できる)
ports:
  - "80:80"

# localhost:3000 でアクセス
ports:
  - "3000:80"

# localhost:7070 でアクセス
ports:
  - "7070:80"

# localhost:8080 でアクセス
ports:
  - "8080:80"
     ブラウザ側(自由に変えてOK)
       ↓
      "7070 : 80"
               ↑
           Docker内のNginx側(変えない)

ポイント

docker-compose.yml ファイルの

services:
  web:
    build: .
    ports:
      - "8080:80"
    ・・・・

ここの ports を確認して、webサービスのportsの左側の数字 を確認しておけば、

ブラウザでどこにアクセスすれば見られるかがわかります!


Dockerの基本操作まとめ

やりたいことコマンド
起動するdocker compose up --build
起動する(ログを表示しない)docker compose up --build -d
停止するdocker compose down
停止してデータも消すdocker compose down -v
動いているか確認するdocker compose ps
ログを見るdocker compose logs

-d オプションについて

docker compose up --build -d

-d をつけると バックグラウンド実行 になります。

ターミナルにログが流れ続けないので、同じターミナルで他の作業ができます。

-d をつけない場合は、ログがリアルタイムで表示されます。

エラーが起きた時に原因を確認しやすいので、慣れるまでは -d なしがおすすめです。


Docker Desktopの画面でも確認できる

コマンドが苦手な方は、Docker Desktopアプリの画面からも操作できます。

  1. Docker Desktopを開く
  2. 左メニューの「Containers」をクリック
  3. 起動中のサービスが一覧で表示される
  4. 各サービスの「停止」「再起動」「ログ表示」がボタンで操作できる

よくあるトラブルと対処法

「port is already allocated」と表示される

Error: port is already allocated

すでに別のアプリがそのポートを使っています。

対処法: docker-compose.yml のポート番号を変更する

# 80番が使われている場合、8000番に変更
ports:
  - "8000:80"

この場合、ブラウザでは http://localhost:8000 でアクセスします。

「Cannot connect to the Docker daemon」と表示される

Cannot connect to the Docker daemon

Docker Desktopが起動していません。

対処法: Docker Desktopアプリを起動してから、もう一度コマンドを実行する

初回起動が遅い

初回の docker compose up --build は、サーバーの構築(イメージのダウンロード・ビルド)があるため数分〜10分程度かかることがあります。2回目以降はキャッシュが効くので数秒で起動します。


まとめ

ステップやること
1Docker Desktop をインストール
2docker --version で確認
3プロジェクトに docker-compose.yml 等を用意
4docker compose up --build で起動
5ブラウザで localhost を開いて確認

Docker Desktopは一度インストールすれば、すべてのプロジェクトで使えます。

プロジェクトごとに必要なのは docker-compose.yml などの設定ファイルだけです。

データベースを使ったプロジェクトに使用するファイルの書き方は、下記記事で詳しく掲載しているのでご参照ください!

【データベース×Docker】PHPサイトをローカルで動かす環境を作る方法| 各コード説明
はじめにWeb制作をしていると、こんな場面がありませんか?コードを書いたけど、レンタルサーバーにアップロードしないと動作確認できないデータベースを使うページを作ったけど、ローカルで確認する方法がわからないPHPファイルをブラウザで開いても、…