✒️

Docker入門:インストールから基本操作まで

に公開

1. Dockerとは?

アプリケーションを「コンテナ」という単位で動かす仕組み

仮想マシンと違って「軽量・高速」

開発環境の再現性が高い(「自分のPCでは動く」がなくなる)


2. Dockerのインストール方法

  • Windowsの場合

Docker Desktop をインストール

WSL2が必要(Windows 10以降推奨)

  • Macの場合

Docker Desktopをダウンロード

Intel Mac / Apple Silicon (M1/M2) でそれぞれ対応版がある

  • Linuxの場合(Ubuntu例)
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

3. Dockerの基本的な仕組み

  • イメージ (Image):設計図(コンテナを作るための元)

  • コンテナ (Container):イメージから作られる実行環境

  • Dockerfile:イメージを自作するときのレシピ

  • Docker Hub:公開されているイメージの共有サイト


4. コンテナにはビルドして作るものと、既存のイメージをそのまま使うだけのものがある

  • ビルドするコンテナ

Dockerfile を使って自分でイメージを作る必要があるコンテナ

例えば自作のPythonアプリやWebアプリなど


Dockerfile を書く(ベースイメージ、必要なライブラリ、コピーするファイルなど)
イメージ作成コマンド

docker build -t 自分のイメージ名 .

コンテナ起動コマンド

docker run

Dockerfileの例

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

→ これをビルドして初めてコンテナが動く

  • ビルド不要のコンテナ

既存の公式イメージ をそのまま使うだけの場合

Docker Hub などから pull して、すぐコンテナを起動できる

nginx イメージを取得して動かす場合

docker pull nginx        # イメージを取得
docker run -d -p 8080:80 nginx   # コンテナを起動

http://localhost:8080 にアクセスするとNginxのウェルカムページ

この場合、自分で Dockerfile を書いてビルドする必要はない

ただし設定を追加したい場合は Dockerfile を作ることもできる


「コンテナそのものは常にイメージから作られる」けど、イメージを自作するか既存のものを使うかで ビルドの有無 が変わる。


5. イメージの保存場所

Dockerでは、イメージは ローカルマシンのDocker専用領域 に保存されます。

Windows / Mac:Docker Desktopの内部管理領域(WSL2やHyperKit上の仮想環境)

Linux:通常 /var/lib/docker 配下に格納

docker images コマンドで一覧を確認できます。

docker images

出力例

REPOSITORY   TAG       IMAGE ID       SIZE
nginx        latest    5a0f5e7f8d5b  133MB

Dockerのコンテナは ライフサイクル(状態) を持っていて、状態によって操作方法や確認コマンドが変わります。


6. コンテナの主な状態(ステータス)

  • Created(作成済み)
    イメージからコンテナが作られたが、まだ起動していない状態
    docker ps -a で確認
    docker start <コンテナID>

  • Running(起動中)
    コンテナが実行中
    docker ps で確認
    docker stop <コンテナID> で停止

  • Paused(一時停止)
    プロセスが一時停止している状態 docker ps で Paused と表示 docker unpause <コンテナID> で再開

  • Stopped(停止済み)
    コンテナが停止している状態 docker ps -a で確認 docker start <コンテナID> で再起動

  • Exited(終了)
    実行が完了して停止した状態 docker ps -a の STATUS で表示
    再実行は docker start または docker run

  • Dead(異常終了) コンテナが異常終了して使用不能
    docker ps -a
    docker rm <コンテナID> で削除


  • よく使うコマンド

docker ps → 起動中のコンテナのみ表示

docker ps -a → **全てのコンテナ(停止含む)**表示

docker stop → コンテナを停止

docker start → 停止済みコンテナを再起動

docker restart → 停止 → 起動を自動で行う


Created → Running → Paused → Running → Stopped / Exited → (削除)

つまり、コンテナは 「作っただけの状態」「実行中」「一時停止」「停止済み」 という流れで状態が変わります。


7. コンテナは終了しても消えない

コンテナを docker stop したり、アプリの処理が終わって Exited 状態になっても コンテナは残っています。

docker ps -a で確認できます。

docker start で再び起動できます。

ただし、最初に指定した「コマンド」が終了している場合、そのまま再実行するとすぐ終了することがあります。

同じコンテナを再利用するより、新しいコンテナを作り直すのが基本。

その場合は docker run をもう一度実行します(これが新しいコンテナを作る動作)。


8. コンテナを完全に削除する

終了したコンテナが増えて邪魔になったら削除できます。

docker rm コンテナID

一括削除なら:

docker container prune

永続化(データ保持)の話はまた次回以降に解説します。

Discussion