• 投稿者:
  • 投稿コメント:0件のコメント
  • 投稿カテゴリー:OS
  • 投稿の最終変更日:2025年1月3日

Dockerを活用したプロジェクト運用の詳細解説

以下では、Dockerを使用してWindows 11 Proのローカル環境でプロジェクトを構築・運用する手順を詳細に解説し、設定の理由も説明します。


1. Dockerのインストールと環境設定

スポンサーリンク

1.1 Docker Desktopのインストール

  • 手順:
    1. Docker公式サイトからインストーラをダウンロード。
    2. インストール中に「WSL 2」を有効にするオプションを選択。
    3. インストール完了後、Docker Desktopを起動。
  • 理由:
    Docker Desktopは、Windows環境でDockerを利用するための統合ツールです。WSL 2を使用することで、軽量で高速なLinux環境を提供します。これにより、コンテナがLinuxベースで動作するため、効率的かつ正確な開発環境が構築できます。

1.2 WSL 2の有効化

  • コマンド:
    PowerShellを管理者権限で開き、以下を実行: wsl --install wsl --set-default-version 2
  • 理由:
    WSL 2は、DockerのLinuxコンテナをWindows上で動作させるために必要です。WSL 2を利用することで、仮想マシンよりも軽量で高速な環境を実現できます。

1.3 動作確認

  • コマンド: docker --version
  • 理由:
    Dockerが正しくインストールされているかを確認するためです。

2. プロジェクトのフォルダ構成と役割

2.1 フォルダ構成の詳細

my-docker-project/           
│
├── Dockerfile              # Dockerイメージのビルド設定
├── docker-compose.yml      # マルチコンテナ環境を簡単に管理
├── package.json            # Node.js依存関係とメタ情報
├── package-lock.json       # 依存関係のバージョン固定
├── app.js                  # アプリケーションのエントリポイント
│
├── .env                    # 環境変数を管理
├── .gitignore              # Gitで無視するファイルやフォルダ
│
└── volumes/                # 永続データの保存(オプション)
    └── logs/               # ログファイル保存用

2.2 各ファイルとその役割

(1) Dockerfile
場所: my-docker-project/Dockerfile
内容:

FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

説明と理由:

  • FROM node:14:
    Node.js公式イメージをベースに使用。バージョン14は安定しており、多くのプロジェクトで採用されています。
  • WORKDIR /usr/src/app:
    コンテナ内の作業ディレクトリを設定。全ての操作がこのディレクトリ内で行われます。
  • *COPY package.json ./**:
    package.jsonpackage-lock.jsonのみをコピーし、次のnpm installを最適化します。
  • RUN npm install:
    必要な依存関係をインストール。
  • COPY . .:
    プロジェクト全体をコンテナにコピー。
  • EXPOSE 3000:
    コンテナが使用するポートをホストに公開。
  • CMD [“node”, “app.js”]:
    コンテナ起動時に実行するコマンドを指定。

(2) docker-compose.yml
場所: my-docker-project/docker-compose.yml
内容:

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/usr/src/app
    environment:
      NODE_ENV: development

説明と理由:

  • version: ‘3.8’:
    最新のDocker Composeバージョンを指定。
  • services:
    アプリケーションの各コンテナを定義。
  • build: .:
    Dockerfileを使ってイメージをビルド。
  • ports:
    ホストのポート3000をコンテナのポート3000にマッピング。
  • volumes:
    ホストとコンテナ間でファイルを共有し、コードの変更を即座に反映。
  • environment:
    環境変数を設定。開発・本番環境を簡単に切り替え可能。

(3) app.js
場所: my-docker-project/app.js
内容:

const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => {
    res.send('Hello, Docker!');
});

app.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

説明と理由:

  • Expressを使用したシンプルなWebサーバー。
  • 環境変数PORTを使用し、柔軟にポートを設定可能。

(4) .envファイル
場所: my-docker-project/.env
内容:

NODE_ENV=development
PORT=3000

説明と理由:

  • 環境変数を一元管理。本番環境に移行するときに設定を簡単に変更可能。

(5) .gitignoreファイル
場所: my-docker-project/.gitignore
内容:

node_modules/
.env
logs/

説明と理由:

  • node_modules/.envはサイズが大きいかつ機密情報を含むため、Gitに含めない。

スポンサーリンク

3. 開発と実行手順

3.1 Dockerイメージのビルド

実行コマンド:

docker-compose build

理由:
プロジェクトのコードと依存関係からDockerイメージを作成します。


3.2 コンテナの起動

実行コマンド:

docker-compose up

理由:
プロジェクト全体を起動し、アプリケーションをテスト可能にします。


3.3 ログ確認

実行コマンド:

docker logs <container_id>

理由:
アプリケーションの動作状況やエラーメッセージを確認するため。


3.4 コンテナにアクセス

実行コマンド:

docker exec -it <container_id> bash

理由:
コンテナ内で直接操作・デバッグが可能。


3.5 コンテナの停止

実行コマンド:

docker-compose down

理由:
開発が完了した後、リソースを解放するため。


これで、Dockerを使ったプロジェクト運用手順の詳細な解説が完了です。次に具体的な課題があれば、さらに掘り下げて解説できます。

コメントを残す