【2026年最新】Docker入門完全ガイド|インストールから実践的なコンテナ活用まで、エンジニアが押さえるべき基礎知識

Dockerとは何か?なぜエンジニアに必須なのか

Dockerはコンテナ技術を使って、アプリケーションとその実行環境をひとつのパッケージ(コンテナ)にまとめるプラットフォームです。「自分のPCでは動くのに本番では動かない」という問題を根本から解決し、開発・テスト・本番環境を統一できます。

2026年現在、DockerはほぼすべてのWeb開発・クラウド環境で標準的に使われており、エンジニアとして知らないと仕事にならないレベルの基礎知識になっています。

Dockerの仕組みを図解

Dockerは以下の3つのコンポーネントで構成されています。

  1. Docker Image(イメージ):アプリ+OS+ライブラリをパッケージ化した設計図
  2. Docker Container(コンテナ):イメージを実際に起動して動かしている実体
  3. Docker Registry:イメージを保存・配布する場所(Docker Hub・ECR等)

Dockerのインストール

Mac(Docker Desktop)

# Homebrew経由でインストール
brew install --cask docker

# インストール確認
docker --version

Ubuntu/Debian Linux

# パッケージ更新
sudo apt update

# 必要なパッケージをインストール
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# DockerのGPGキーを追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# リポジトリを追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Dockerをインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# サービス起動
sudo systemctl start docker
sudo systemctl enable docker

Dockerの基本コマンド

# イメージを取得
docker pull nginx:latest

# コンテナを起動(バックグラウンド・ポートマッピング)
docker run -d -p 8080:80 --name my-nginx nginx:latest

# 起動中のコンテナ一覧
docker ps

# 全コンテナ(停止中含む)
docker ps -a

# コンテナの中に入る
docker exec -it my-nginx bash

# コンテナを停止
docker stop my-nginx

# コンテナを削除
docker rm my-nginx

# イメージを削除
docker rmi nginx:latest

# コンテナのログを確認
docker logs my-nginx

Dockerfile の書き方

Dockerfileは独自のDockerイメージを作成するための設計ファイルです。

# Python Webアプリの例
FROM python:3.12-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Docker Compose で複数コンテナを管理

Docker Composeを使うと、アプリ+データベース+Redisなど複数コンテナを一括管理できます。

# docker-compose.yml の例
version: '3.8'

services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb

  db:
    image: postgres:15
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
# 起動
docker compose up -d

# 停止
docker compose down

まとめ

Dockerは現代のエンジニアにとって必須のスキルです。まずdocker run・docker pull・docker composeの基本を習得し、次にDockerfileの書き方・マルチステージビルド・Kubernetesへのステップアップと学習を進めましょう。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です