Dockerとは何か?コンテナ技術の基礎
Dockerは2013年にDotCloud社(現Docker社)が公開したオープンソースのコンテナ化プラットフォームです。従来の仮想マシン(VM)と異なり、OSを丸ごと仮想化するのではなく、アプリケーションとその実行環境をコンテナという単位でパッケージ化します。
VMとコンテナの違い
| 比較項目 | 仮想マシン(VM) | Dockerコンテナ |
|---|---|---|
| 起動時間 | 数分 | 数秒 |
| リソース消費 | 大きい(GB単位) | 小さい(MB単位) |
| 移植性 | 低い | 非常に高い |
Dockerのインストール手順
MacではDocker Desktopを使用します。Docker公式サイトからDMGファイルをダウンロードし、インストールします。
# インストール確認
docker --version
# Hello Worldコンテナを実行
docker run hello-world
基本コマンド一覧
# イメージをDocker Hubから取得
docker pull nginx:latest
# コンテナを起動(バックグラウンド実行)
docker run -d -p 8080:80 --name mynginx nginx
# 実行中のコンテナ一覧
docker ps
# コンテナのログを確認
docker logs mynginx
# コンテナ内でシェルを実行
docker exec -it mynginx /bin/bash
Dockerfileの書き方
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
USER node
CMD ["node", "server.js"]
Docker Compose|複数コンテナの管理
version: "3.9"
services:
app:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: mydb
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
まとめ
Dockerはコンテナ技術の標準として、個人開発から大規模企業まで幅広く採用されています。「動く環境をそのまま配布できる」という特性は、開発・テスト・本番の環境差異をなくし、DevOpsの効率化に大きく貢献します。本記事を参考に、まずdocker run hello-worldから始めてみましょう。