Docker: Docker のインストールと環境設定
最終更新:2026-08-26
Docker のインストールは想像以上に簡単です — Windows、Mac、Linux のいずれを使用しても、10 分で完全に機能するコンテナ環境を起動できます。
1. 学べること
- さまざまなプラットフォームへの Docker のインストール方法
- Docker Desktop と Docker Engine の違い
- ミラーアクセラレータの設定
- 非 root ユーザーでの Docker 実行
- Docker Context 管理
2. チーム技術リードの実話
(1) 課題:15 人がそれぞれ異なる環境
Charlie のチームは Docker の全面採用を決定したばかりでしたが、新規メンバーの Lisa が尋ねました。「Docker Desktop と Docker Engine のどちらをインストールすべきですか? Mac と Linux でインストール手順は同じですか?」15 人のチームが 4 つの異なる OS(Windows、Mac、Ubuntu、CentOS)を使用しており、インストールプロセスはそれぞれ異なり、環境設定だけで 2 日かかりました。
(2) 決定木アルゴリズムの実装
Charlie はインストール決定木を描きました — 3 OS タイプ × 2 モード — チームを 15 分で稼働させました。
# セットアップ後に Docker のインストールを検証
docker run hello-world
(3) メリット:統一された摩擦のない環境
チームが統一インストールを完了した後、全員の docker version 出力が一貫したものになり、環境関連の issues は週 5 件から 0 件に減少しました。
3. Docker Desktop vs Docker Engine
インストール前に、2 つのディストリビューションの違いを理解しておいてください。
graph TB
START["Docker バージョン選択"] --> OS{"OS は?"}
OS -->|Windows / Mac| DT["Docker Desktop<br/>GUI + VM + CLI"]
OS -->|Linux サーバー| DE["Docker Engine<br/>純粋な CLI サービス"]
DT --> DEV["✅ 推奨:開発環境"]
DE --> PROD["✅ 推奨:本番環境"]
(1) 2 つのディストリビューションの比較
| 観点 | Docker Desktop | Docker Engine |
|---|---|---|
| 含まれるコンポーネント | CLI + デーモン + GUI + VM | CLI + デーモン(純粋なバックグラウンドサービス) |
| 対応プラットフォーム | Windows / Mac / Linux | Linux のみ |
| リソース使用量 | 高い(2〜4 GB、VM を含む) | 低い(ホストカーネルで直接実行) |
| GUI 管理 | ✅ ダッシュボードあり | ❌ コマンドラインのみ |
| ユースケース | 開発者の個人コンピュータ | サーバー/CI 環境 |
| 価格 | 個人は無料、企業は有料 | 完全無料(CE 版) |
(2) インストール決定プロセス
| 要件 | 推奨バージョン |
|---|---|
| Windows / Mac 開発 | Docker Desktop |
| Linux デスクトップ開発 | Docker Desktop(GUI 必要)または Engine |
| Linux サーバー本番 | Docker Engine |
| CI/CD ビルドノード | Docker Engine |
4. 各プラットフォームのインストール手順
(1) Windows インストール
前提条件:
- Windows 10 64 ビット(バージョン 1903 以降)または Windows 11
- WSL2(Windows Subsystem for Linux 2)を有効化
- Hyper-V を有効化(オプション、WSL2 モードを推奨)
インストール手順:
| 手順 | アクション |
|---|---|
| 1 | Docker Desktop for Windows をダウンロード(docker.com/products/docker-desktop) |
| 2 | インストーラーをダブルクリックし、「Use WSL 2 instead of Hyper-V」にチェックが入っていることを確認 |
| 3 | インストール後にコンピュータを再起動 |
| 4 | Docker Desktop を起動し、ステータスが「Running」になるまで待つ |
| 5 | ターミナルを開いて検証: docker version |
(2) Mac インストール
| 手順 | アクション |
|---|---|
| 1 | Docker Desktop for Mac をダウンロード(Intel チップは「amd64」、Apple Silicon は「arm64」を選択) |
| 2 | Docker.app を Applications フォルダにドラッグ |
| 3 | Docker.app を起動し、メニューバーのクジラアイコンが安定するまで待つ |
| 4 | ターミナル検証: docker version |
(3) Linux インストール(Ubuntu/Debian)
# 1. パッケージインデックスを更新
sudo apt-get update
# 2. 前提条件をインストール
sudo apt-get install -y ca-certificates curl gnupg
# 3. Docker の公式 GPG キーを追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 4. Docker リポジトリを追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 5. Docker Engine をインストール
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 6. Docker を起動
sudo systemctl start docker
sudo systemctl enable docker
# 7. 検証
sudo docker run hello-world
5. 非 root ユーザーの設定
デフォルトでは、Linux では root ユーザーと docker グループのメンバーのみが Docker を実行できます。
▶ サンプル:現在のユーザーを docker グループに追加 (難易度: ⭐)
# 現在のユーザーを docker グループに追加
sudo usermod -aG docker $USER
# グループ変更を適用(またはログアウトして再度ログイン)
newgrp docker
# 検証:sudo なしで docker を実行
docker run hello-world
docker グループのメンバーであることは root 権限を持つことと同等です(コンテナはホスト上の任意のディレクトリをマウントできるため)。本番環境では、docker グループのメンバーシップを厳密に管理してください。
6. ミラーアクセラレータの設定
中国国内から Docker Hub にアクセスすると遅い場合がありますが、イメージアクセラレータを設定すると取得速度が大幅に向上します。
(1) 人気のミラーアクセラレータ
| アクセラレータ | アドレス | 説明 |
|---|---|---|
| Alibaba Cloud | https://<your-id>.mirror.aliyuncs.com |
ログインしてユニークなリンクを取得 |
| USTC | https://docker.mirrors.ustc.edu.cn |
無料、登録不要 |
| NetEase | https://hub-mirror.c.163.com |
無料 |
| Docker 公式 | https://registry.docker.io |
デフォルト、海外からの高速アクセス |
▶ サンプル:Linux でミラーアクセラレータを設定 (難易度: ⭐⭐)
# Docker デーモン設定を作成または編集
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
# Docker を再起動して変更を適用
sudo systemctl daemon-reload
sudo systemctl restart docker
# 設定を検証
docker info | grep -A 5 "Registry Mirrors"
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
https://hub-mirror.c.163.com/
▶ サンプル:Docker Desktop イメージアクセラレータを設定 (難易度: ⭐)
Docker Desktop GUI で設定するには: Settings → Docker Engine → JSON に registry-mirrors 配列を追加 → Apply & Restart。
または設定ファイルを直接編集(Mac: ~/.docker/daemon.json、Windows: C:\Users\<user>\.docker\daemon.json)。
7. Docker Context 管理
Docker Context を使用すると、ローカルの Docker インスタンスやリモートサーバーなど、複数の Docker ホスト間をすばやく切り替えることができます。
▶ サンプル:Docker Context の一覧と切り替え (難易度: ⭐⭐)
# すべての Docker Context を一覧表示
docker context ls
NAME TYPE DESCRIPTION
default * moby Current DOCKER_HOST based configuration
remote-server moby Remote Docker on 10.0.1.100
# リモート Docker ホスト用の新しい Context を作成
docker context create remote-server --docker "host=ssh://user@10.0.1.100"
# リモート Context に切り替え
docker context use remote-server
# 検証:これですべての docker コマンドがリモートサーバーで実行される
docker ps
# ローカルに戻る
docker context use default
▶ サンプル:インストールの成功を検証 (難易度: ⭐)
# 完全な検証チェックリスト
docker version # クライアント + サーバーのバージョン
docker info # システム全体の情報
docker run hello-world # エンドツーエンドテスト
8. 一般的なインストール問題のトラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
Cannot connect to the Docker daemon |
Docker サービスが起動していない | sudo systemctl start docker |
permission denied while trying to connect |
ユーザーが docker グループに属していない | sudo usermod -aG docker $USER |
WSL2 installation is incomplete (Windows) |
WSL2 が正しくインストールされていない | wsl --install その後再起動 |
docker: command not found |
Docker が PATH に含まれていない | 再インストールまたは PATH に手動追加 |
| ミラーの取得タイムアウト | ネットワークの問題 | ミラーアクセラレータを設定 |
9. 完全な例:Ubuntu サーバーにゼロから Docker 環境を設定
# ============================================
# 完全なチュートリアル:Ubuntu に Docker をインストール
# 範囲:インストール、sudo なし、ミラー、検証
# ============================================
# 1. Docker Engine をインストール
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 2. Docker サービスを開始し自動起動を有効化
sudo systemctl start docker
sudo systemctl enable docker
# 3. 現在のユーザーを docker グループに追加(sudo 不要)
sudo usermod -aG docker $USER
newgrp docker
# 4. 取得を高速化するためにレジストリミラーを設定
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 5. 検証:Nginx を起動してアクセス
docker run -d -p 8080:80 --name test-nginx nginx:latest
curl http://localhost:8080
# 6. クリーンアップ
docker stop test-nginx
docker rm test-nginx
# docker run -d -p 8080:80 --name test-nginx nginx:latest
a1b2c3d4e5f6...
# curl http://localhost:8080
<!DOCTYPE html>
<html><head><title>Welcome to nginx!</title>...
❓ よくある質問
pull 操作の高速化のみを行います。push 操作は引き続き元の Docker Hub パスを使用します。内部的には、プライベートレジストリをセットアップすることをお勧めします。docker version Client と Server のセクション両方の情報が表示されるはず; ② docker info 出力が正常に表示されるはず; ③ docker run hello-world 「Hello from Docker!」が表示されるはず。3 ステップすべてが通れば、インストールは完了です。docker system df で使用量を確認し、docker system prune でクリーンアップできます。📖 まとめ
- Docker Desktop は Windows と Mac での開発(GUI 付き)に適し、Docker Engine は Linux サーバー(CLI のみ)に適している
- Windows の場合は WSL2 モードを使用、Mac の場合は Intel か Apple Silicon かに基づいて適切なバージョンを選択
- Linux インストールには公式の APT/YUM リポジトリを使用。システム付属のは古いバージョンは使用しない
- ユーザーを docker グループに追加すると、sudo なしで Docker を実行できる
- 中国国内での Docker Hub アクセスが遅い問題を解決するために、ミラーアクセラレータを設定する
- Docker Context を使用すると、ローカルとリモートの Docker ホスト間をすばやく切り替えられる
📝 練習問題
- 基本問題 (難易度: ⭐): ローカルマシンに Docker をインストールし、
docker run hello-worldを実行して、出力のスクリーンショットを撮って保存してください。 - 応用練習 (難易度: ⭐⭐): 国内のミラーアクセラレータを設定し、
docker info | grep -A 5 "Registry Mirrors"を実行して設定が機能していることを確認してください。 - チャレンジ (難易度: ⭐⭐⭐):
docker run -d -p 8080:80 nginxを実行して Nginx を起動し、ブラウザでhttp://localhost:8080にアクセスしてページが正しく表示されることを確認し、docker stopとdocker rmを使用してコンテナをクリーンアップしてください。