NINOMIN BLOG

Docker入門 - 開発環境をコンテナ化する

2 min read
Docker
DevOps
infrastructure
tech

Docker 入門 - 開発環境をコンテナ化する

Docker とは

Docker は、アプリケーションをコンテナという単位でパッケージ化し、どこでも同じ環境で実行できるようにするツール。


なぜ Docker を使うのか

1. 環境の統一

「自分の PC では動くのに...」問題を解消。

bash
# 開発者A: macOS
# 開発者B: Windows
# 本番: Linux

# → Dockerなら全員同じ環境で動作

2. セットアップの簡素化

新メンバーの環境構築が一瞬で完了。

bash
# 従来: READMEを見ながら数時間かけてセットアップ
# Docker: コマンド一発
docker-compose up -d

基本コマンド

イメージ操作

bash
# イメージをダウンロード
docker pull node:18

# イメージ一覧
docker images

# イメージを削除
docker rmi node:18

コンテナ操作

bash
# コンテナを起動
docker run -d -p 3000:3000 --name myapp node:18

# コンテナ一覧
docker ps -a

# コンテナを停止
docker stop myapp

# コンテナを削除
docker rm myapp

Dockerfile の例

dockerfile
# ベースイメージ
FROM node:18-alpine

# 作業ディレクトリ
WORKDIR /app

# 依存関係をインストール
COPY package*.json ./
RUN npm install

# ソースコードをコピー
COPY . .

# ポートを公開
EXPOSE 3000

# アプリを起動
CMD ["npm", "start"]

docker-compose.yml の例

yaml
version: "3.8"
services:
  app:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
    environment:
      - NODE_ENV=development

  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: password
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

まとめ

  • Docker で環境差異をなくせる
  • チーム開発の効率が大幅に向上
  • 本番環境との差異も最小化できる