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