「Dockerって何?」
「コンテナってどういう意味?」
Dockerは、現代の開発で欠かせないツールのひとつです。
多くの企業で導入されており、エンジニアなら知っておくべき技術です。
この記事では、Docker初心者向けに基礎知識をわかりやすく解説します。
Dockerとは?
一言で説明すると
Dockerは、アプリケーションをコンテナという単位で動かすツールです。
コンテナとは?
コンテナは、アプリケーションと実行に必要な環境を一つにまとめたものです。
┌─────────────────────────────┐
│ コンテナ │
│ ┌─────────────────────────┐ │
│ │ アプリケーション │ │
│ │ + ライブラリ │ │
│ │ + 設定ファイル │ │
│ └─────────────────────────┘ │
└─────────────────────────────┘
仮想マシンとの違い
| 仮想マシン | コンテナ | |
|---|---|---|
| OS | ゲストOSが必要 | ホストOSを共有 |
| 起動時間 | 数分 | 数秒 |
| サイズ | 数GB | 数MB〜数百MB |
| リソース | 重い | 軽い |
コンテナは仮想マシンより軽量で高速です。
なぜDockerを使うのか?
1. 環境構築が簡単
「自分の環境では動くのに…」という問題を解決。
Dockerfileがあれば、誰でも同じ環境を再現できます。
2. 環境の差異をなくせる
開発環境、テスト環境、本番環境を統一できます。
開発環境 ≒ テスト環境 ≒ 本番環境
3. チーム開発が楽になる
新しいメンバーが参加しても、環境構築が数分で完了。
4. スケーリングしやすい
コンテナを増やすだけで、簡単にスケールアウトできます。
5. クリーンな環境を維持
コンテナを削除すれば、環境を完全にリセットできます。
Dockerの基本用語
イメージ(Image)
コンテナの設計図。これをもとにコンテナを作成します。
コンテナ(Container)
イメージから作られた実行環境。アプリケーションが動く場所です。
Dockerfile
イメージを作るための設定ファイル。
Docker Hub
Dockerイメージが公開されているレジストリ。公式イメージをダウンロードできます。
docker-compose
複数のコンテナをまとめて管理するツール。
Dockerのインストール
Windows / Mac
- Docker Desktopをダウンロード
- インストーラーを実行
- 起動を確認
確認コマンド
docker --version
基本的なコマンド
イメージの操作
# イメージの一覧
docker images
# イメージをダウンロード
docker pull nginx
# イメージを削除
docker rmi nginx
コンテナの操作
# コンテナを起動
docker run nginx
# バックグラウンドで起動
docker run -d nginx
# ポートを指定して起動
docker run -d -p 8080:80 nginx
# コンテナの一覧
docker ps
# 停止中も含めて一覧
docker ps -a
# コンテナを停止
docker stop [コンテナID]
# コンテナを削除
docker rm [コンテナID]
# コンテナに入る
docker exec -it [コンテナID] bash
実践:Nginxを動かしてみよう
ステップ1:Nginxイメージをダウンロード
docker pull nginx
ステップ2:コンテナを起動
docker run -d -p 8080:80 nginx
ステップ3:ブラウザでアクセス
http://localhost:8080 にアクセス
Nginxのウェルカムページが表示されれば成功!
ステップ4:コンテナを停止・削除
docker ps # コンテナIDを確認
docker stop [コンテナID] # 停止
docker rm [コンテナID] # 削除
Dockerfileの書き方
基本構文
# ベースイメージ
FROM python:3.11
# 作業ディレクトリ
WORKDIR /app
# ファイルをコピー
COPY requirements.txt .
# コマンド実行
RUN pip install -r requirements.txt
# アプリケーションをコピー
COPY . .
# ポートを公開
EXPOSE 8000
# 起動コマンド
CMD ["python", "app.py"]
主な命令
| 命令 | 説明 |
|---|---|
| FROM | ベースイメージを指定 |
| WORKDIR | 作業ディレクトリを設定 |
| COPY | ファイルをコピー |
| RUN | コマンドを実行 |
| EXPOSE | ポートを公開 |
| CMD | 起動時のコマンド |
| ENV | 環境変数を設定 |
イメージのビルド
docker build -t myapp:1.0 .
docker-composeの使い方
docker-compose.ymlの例
version: '3.8'
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/app
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: mydb
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
docker-composeコマンド
# コンテナを起動
docker-compose up
# バックグラウンドで起動
docker-compose up -d
# コンテナを停止
docker-compose down
# ログを確認
docker-compose logs
# コンテナを再ビルド
docker-compose up --build
よく使うDockerイメージ
公式イメージ
| イメージ | 用途 |
|---|---|
| nginx | Webサーバー |
| mysql | データベース |
| postgres | データベース |
| redis | キャッシュ |
| node | Node.js環境 |
| python | Python環境 |
| php | PHP環境 |
使用例
# MySQLを起動
docker run -d -p 3306:3306
-e MYSQL_ROOT_PASSWORD=password
mysql:8.0
# Redisを起動
docker run -d -p 6379:6379 redis
Docker活用のベストプラクティス
1. 軽量なベースイメージを使う
# NG(重い)
FROM python:3.11
# OK(軽い)
FROM python:3.11-slim
2. レイヤーを減らす
# NG(レイヤーが多い)
RUN apt-get update
RUN apt-get install -y git
RUN apt-get install -y curl
# OK(レイヤーが少ない)
RUN apt-get update &&
apt-get install -y git curl
3. .dockerignoreを使う
不要なファイルをイメージに含めない。
node_modules
.git
*.log
4. 環境変数で設定を外出し
ENV DATABASE_HOST=localhost
よくある質問(FAQ)
Q. Dockerは難しい?
A. 最初は覚えることが多いですが、基本コマンドを覚えれば使えます。
Q. Windowsでも使える?
A. Docker Desktopで使えます。WSL2との組み合わせがおすすめ。
Q. 本番環境でも使う?
A. 使います。Kubernetesと組み合わせて使うことが多いです。
Q. 学習にどのくらいかかる?
A. 基本は1〜2週間。実務レベルは使いながら覚えましょう。
まとめ:Dockerを使いこなそう
この記事では、Dockerの基礎を解説しました。
Dockerの特徴:
– アプリと環境を一つにまとめる
– 環境構築が簡単
– チーム開発が楽になる
– 軽量で高速
覚えるべき基本コマンド:
– docker run – コンテナを起動
– docker ps – コンテナ一覧
– docker stop – コンテナを停止
– docker build – イメージをビルド
– docker-compose up – 複数コンテナを起動
Dockerは、現代のエンジニアには必須のスキルです。
まずは簡単なコンテナを動かすところから始めてみましょう!
あなたの学習を応援しています!

