MENU

【入門】Dockerの基礎知識|エンジニアなら知っておきたいコンテナ技術

「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

  1. Docker Desktopをダウンロード
  2. インストーラーを実行
  3. 起動を確認

確認コマンド

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は、現代のエンジニアには必須のスキルです。

まずは簡単なコンテナを動かすところから始めてみましょう!

あなたの学習を応援しています!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

TechUp Career 編集部。
エンジニアの転職・副業・資産形成に役立つ情報をわかりやすく発信中!
一緒にキャリアアップを目指しましょう💪

目次