STEP 3:Dockerのインストールと初期設定

🐳 STEP 3: Dockerのインストールと初期設定

Windows、Mac、LinuxへのDockerインストールと、Hello Worldコンテナの実行

📋 このステップで学ぶこと

  • Docker Desktopとは何か、その構成要素
  • Windows へのインストール(WSL 2の設定含む)
  • Mac へのインストール(Intel / Apple Silicon対応)
  • Linux へのインストール(Ubuntu / CentOS)
  • インストールの確認とHello Worldコンテナの実行
  • Docker Engineのアーキテクチャ理解
  • よくあるトラブルと解決方法

💻 1. Docker Desktopとは?

1-1. Docker Desktopの概要

Docker Desktopは、WindowsやMacでDockerを簡単に使えるようにしたアプリケーションです。

本来、DockerはLinux上で動作するソフトウェアですが、Docker DesktopはWindowsやMacの中に軽量なLinux環境を自動的に構築し、その上でDockerを動かします。

📦 Docker Desktopに含まれるもの
  • Docker Engine:コンテナを実際に動かすエンジン本体
  • Docker CLI:コマンドラインでDockerを操作するツール
  • Docker Compose:複数のコンテナをまとめて管理するツール
  • Docker Desktop GUI:視覚的にコンテナを管理できる画面
  • Kubernetes:コンテナオーケストレーション機能(オプション)

1-2. Docker DesktopとDocker Engineの違い

初心者が混乱しやすいポイントなので、違いを整理しておきましょう。

項目 Docker Desktop Docker Engine
対象OS Windows、Mac Linux
GUI あり(視覚的な管理画面) なし(CLIのみ)
インストール 簡単(インストーラー実行) やや複雑(コマンド実行)
仕組み 軽量Linux VMを内蔵 ホストOSで直接動作
ライセンス 大企業は有償(250人以上) 無償(オープンソース)

1-3. システム要件

Dockerをインストールする前に、お使いのパソコンが要件を満たしているか確認しましょう。

OS 要件
Windows ・Windows 10 64bit(Build 19041以降)または Windows 11 64bit
・Home版、Pro版、Enterprise版、Education版すべて対応
・WSL 2(Windows Subsystem for Linux 2)の有効化が必要
・メモリ:最低4GB(推奨8GB以上)
・BIOSで仮想化機能(Intel VT-x / AMD-V)が有効
Mac ・macOS 12(Monterey)以降
・Intel チップ または Apple Silicon(M1/M2/M3)
・メモリ:最低4GB(推奨8GB以上)
Linux ・Ubuntu 20.04以降、Debian 10以降、CentOS 7以降、Fedora 36以降
・64bit のLinuxカーネル
・メモリ:最低2GB(推奨4GB以上)
💡 Windows Home版をお使いの方へ

以前はWindows Pro版以上が必要でしたが、現在はHome版でもDocker Desktopが使えます
WSL 2という機能を使うことで、Home版でもDockerを動かせるようになりました。
次のセクションで詳しく説明します。

🪟 2. Windows へのインストール

2-1. インストールの流れ

Windows版Dockerのインストールは、以下の流れで行います。

【インストールの流れ】 Step 1: WSL 2の有効化(Windowsの機能を有効にする) ↓ Step 2: Docker Desktopのダウンロード ↓ Step 3: インストーラーの実行 ↓ Step 4: Docker Desktopの起動と初期設定 ↓ Step 5: 動作確認

2-2. Step 1: WSL 2の有効化

WSL 2(Windows Subsystem for Linux 2)は、Windows上でLinuxを動かすための機能です。
Docker DesktopはこのWSL 2を使ってLinuxコンテナを実行します。

PowerShellを管理者権限で開く

  1. スタートメニューで「PowerShell」と検索
  2. 「Windows PowerShell」を右クリック
  3. 管理者として実行」をクリック
  4. 「このアプリがデバイスに変更を加えることを許可しますか?」と表示されたら「はい」をクリック

WSL 2をインストールするコマンド

以下のコマンドを入力して Enter キーを押します。

wsl –install
📝 このコマンドの意味
  • wsl :WSL(Windows Subsystem for Linux)を操作するコマンド
  • --install :WSLをインストールするオプション

このコマンドを実行すると、WSL 2と一緒にUbuntu(Linux)も自動的にインストールされます。

インストールが完了すると、以下のようなメッセージが表示されます。

インストール中: 仮想マシン プラットフォーム 仮想マシン プラットフォーム はインストールされました。 インストール中: Linux 用 Windows サブシステム Linux 用 Windows サブシステム はインストールされました。 インストール中: Ubuntu Ubuntu はインストールされました。 要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

パソコンを再起動

インストール完了後、パソコンを再起動してください。
再起動しないとWSL 2が有効になりません。

再起動後の設定

再起動すると、自動的にUbuntuのセットアップ画面が開きます。
ユーザー名パスワードを設定してください。

⚠️ パスワード入力時の注意

パスワードを入力する際、画面には何も表示されません(セキュリティのため)。
入力できていないように見えますが、実際には入力されています。
入力後、Enterキーを押してください。

WSL 2が正しくインストールされたか確認

PowerShellで以下のコマンドを実行して確認します。

wsl –list –verbose
📝 このコマンドの意味
  • wsl :WSLを操作するコマンド
  • --list :インストールされているLinuxディストリビューションを一覧表示
  • --verbose :詳細情報(バージョン番号など)も表示

以下のような表示が出ればWSL 2のインストール成功です。

NAME STATE VERSION * Ubuntu Running 2
✅ 確認ポイント

VERSIONの列が「2」になっていることを確認してください。
「1」の場合は、WSL 1がインストールされています(後述のトラブルシューティングを参照)。

2-3. Step 2: Docker Desktopのダウンロード

  1. ブラウザで https://www.docker.com/products/docker-desktop/ にアクセス
  2. Download for Windows」ボタンをクリック
  3. Docker Desktop Installer.exe がダウンロードされる

2-4. Step 3: インストーラーの実行

ダウンロードした Docker Desktop Installer.exe をダブルクリックして実行します。

📋 インストール時の設定オプション
  • Use WSL 2 instead of Hyper-V:チェックを入れる(推奨)
  • Add shortcut to desktop:デスクトップにショートカットを作成(お好みで)

OK」をクリックするとインストールが始まります。
完了後、「Close and restart」をクリックして再起動します。

2-5. Step 4: Docker Desktopの起動と初期設定

  1. 再起動後、デスクトップの「Docker Desktop」アイコンをダブルクリック
  2. 利用規約が表示されたら「Accept」をクリック
  3. Docker Desktopが起動し、画面右下のタスクトレイに🐳アイコンが表示される
  4. アイコンが緑色(または安定状態)になれば起動完了
💡 初回起動時の注意

初回起動時は、必要なファイルのダウンロードや初期化が行われるため、数分かかる場合があります。
「Docker Desktop is starting…」と表示されている間は、そのまま待ちましょう。

🍎 3. Mac へのインストール

3-1. 使用しているMacのチップを確認

MacにはIntelチップApple Silicon(M1/M2/M3)の2種類があります。
ダウンロードするファイルが異なるため、まず確認しましょう。

確認方法

  1. 画面左上のAppleアイコン(🍎)をクリック
  2. このMacについて」を選択
  3. 表示された情報を確認:
    • チップ: Apple M1」「Apple M2」など → Apple Silicon
    • プロセッサ: Intel Core i5」など → Intelチップ

3-2. Docker Desktopのダウンロード

  1. ブラウザで https://www.docker.com/products/docker-desktop/ にアクセス
  2. お使いのMacに合わせてダウンロード:
    • Apple Silicon(M1/M2/M3)の場合:「Download for Mac – Apple Silicon」
    • Intelチップの場合:「Download for Mac – Intel Chip」
  3. Docker.dmg ファイルがダウンロードされる
⚠️ 間違ったバージョンをダウンロードした場合

チップの種類と異なるバージョンをインストールすると、正常に動作しません。
必ず正しいバージョンをダウンロードしてください。

3-3. インストール実行

  1. ダウンロードした Docker.dmg をダブルクリック
  2. 開いたウィンドウで、Docker アイコンを Applications フォルダにドラッグ&ドロップ
  3. Finderで アプリケーション フォルダを開く
  4. Docker」をダブルクリックして起動

初回起動時の確認画面

初回起動時、以下のような確認画面が表示される場合があります。

📋 表示される可能性のある確認画面
  • 「”Docker”はインターネットからダウンロードされたアプリケーションです。開いてもよろしいですか?」
    → 「開く」をクリック
  • 「Dockerが変更を加えようとしています」(パスワード入力)
    → Macのログインパスワードを入力
  • 「Install Rosetta 2」(Apple Siliconの場合)
    → 「Install」をクリック

3-4. Docker Desktopの起動確認

  1. 利用規約が表示されたら「Accept」をクリック
  2. Docker Desktopが起動し、画面上部のメニューバーに🐳アイコンが表示される
  3. アイコンをクリックして、ステータスが「Docker Desktop is running」になれば起動完了
✅ Macでのインストール完了

Macへのインストールは比較的シンプルです。
メニューバーのDockerアイコンが緑色(または正常状態)であれば、使用準備完了です。

🐧 4. Linux へのインストール

4-1. LinuxでのDockerインストールについて

Linuxでは、Docker Desktopではなく、Docker Engineを直接インストールします。
GUIはありませんが、コマンドラインですべての操作が可能です。

💡 なぜLinuxではDocker Engineを使うのか?

DockerはもともとLinux用に開発されました。
LinuxではOSが直接コンテナをサポートしているため、Docker Engineだけで動作します。
WindowsやMacのような仮想化レイヤーが不要で、より軽量・高速に動作します。

4-2. Ubuntu / Debian へのインストール

以下のコマンドを順番に実行していきます。
各コマンドの意味も解説します。

Step 1: 古いバージョンの削除

過去にDockerをインストールしたことがある場合、古いバージョンを削除します。

sudo apt-get remove docker docker-engine docker.io containerd runc
📝 コマンドの意味
  • sudo :管理者権限でコマンドを実行
  • apt-get remove :パッケージを削除するコマンド
  • docker docker-engine docker.io containerd runc :削除対象のパッケージ名

「パッケージが見つかりません」と表示されても問題ありません。

Step 2: 必要なパッケージのインストール

sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release
📝 コマンドの意味
  • apt-get update :パッケージリストを最新に更新
  • apt-get install :パッケージをインストール
  • ca-certificates :SSL証明書の検証に必要
  • curl :URLからデータをダウンロードするツール
  • gnupg :GPG鍵(セキュリティ署名)を扱うツール
  • lsb-release :Linuxディストリビューションの情報を取得

Step 3: DockerのGPGキーを追加

Dockerの公式リポジトリを信頼するための鍵を追加します。

sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
📝 コマンドの意味
  • mkdir -p :ディレクトリを作成(-pは親ディレクトリも同時に作成)
  • curl -fsSL :エラー時に終了し、進捗を表示せず、リダイレクトに従う
  • | sudo gpg --dearmor :ダウンロードしたデータをGPG形式に変換して保存

Step 4: Dockerのリポジトリを追加

echo \ “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
📝 コマンドの意味

このコマンドは、Dockerの公式パッケージリポジトリをシステムに登録します。
これにより、apt-get install でDockerをインストールできるようになります。

Step 5: Dockerのインストール

sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
📝 インストールされるパッケージ
  • docker-ce :Docker Engine本体(Community Edition)
  • docker-ce-cli :Dockerコマンドラインツール
  • containerd.io :コンテナランタイム
  • docker-compose-plugin :Docker Compose機能

Step 6: Dockerサービスの起動

sudo systemctl start docker sudo systemctl enable docker
📝 コマンドの意味
  • systemctl start docker :Dockerサービスを今すぐ起動
  • systemctl enable docker :パソコン起動時に自動でDockerを起動するよう設定

4-3. 一般ユーザーでDockerを使えるようにする

デフォルトでは、Dockerコマンドを実行するのにsudoが必要です。
毎回sudoを付けるのは面倒なので、一般ユーザーでも使えるように設定します。

sudo usermod -aG docker $USER
📝 コマンドの意味
  • usermod :ユーザー情報を変更するコマンド
  • -aG docker :dockerグループに追加(-a: 追加、-G: グループ指定)
  • $USER :現在ログインしているユーザー名

設定を反映するには、一度ログアウトして再ログインするか、以下のコマンドを実行します。

newgrp docker
⚠️ セキュリティ上の注意

dockerグループに追加されたユーザーは、実質的にroot権限相当の操作ができるようになります。
本番サーバーでは、慎重に権限管理を行ってください。

4-4. CentOS / RHEL へのインストール

CentOS や Red Hat Enterprise Linux をお使いの場合は、以下のコマンドを実行します。

# 古いバージョンの削除 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest # 必要なパッケージのインストール sudo yum install -y yum-utils # Dockerリポジトリの追加 sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo # Dockerのインストール sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin # サービスの起動 sudo systemctl start docker sudo systemctl enable docker # 一般ユーザーで使えるようにする sudo usermod -aG docker $USER newgrp docker

✅ 5. インストールの確認

5-1. Dockerのバージョン確認

ターミナル(Windows: PowerShell、Mac/Linux: Terminal)を開いて、以下のコマンドを実行します。

docker –version
📝 コマンドの意味
  • docker :Dockerコマンド
  • --version :バージョン情報を表示するオプション

以下のような表示が出ればインストール成功です。

Docker version 24.0.7, build afdd53b
✅ 確認ポイント

バージョン番号は異なる場合がありますが、エラーが出なければ正常にインストールされています。

5-2. Docker Composeのバージョン確認

docker compose version
Docker Compose version v2.21.0

5-3. Dockerの詳細情報を確認

docker info

このコマンドを実行すると、Dockerの詳細な設定情報が表示されます。

Client: Version: 24.0.7 Context: default Debug Mode: false … Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 24.0.7 …

5-4. Hello Worldコンテナの実行

いよいよ、最初のDockerコンテナを実行してみましょう!

docker run hello-world
📝 コマンドの意味
  • docker :Dockerコマンド
  • run :コンテナを実行するサブコマンド
  • hello-world :実行するイメージの名前

以下のような表示が出れば成功です!

Unable to find image ‘hello-world:latest’ locally latest: Pulling from library/hello-world c1ec31eb5944: Pull complete Digest: sha256:4bd78111b6914a99dbc560e6a20eab57ff6655aea4a80c50b0c5491968cbc2e6 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the “hello-world” image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
🎉 おめでとうございます!

「Hello from Docker!」と表示されれば、Dockerが正しくインストールされ、
コンテナを実行できることが確認できました!

これであなたもDocker使いの仲間入りです!

5-5. 何が起こったのか?(裏側の動き)

docker run hello-world を実行したとき、Dockerは裏側で以下の処理を行っています。

【docker run hello-world の処理フロー】 ① docker run hello-world と入力 ↓ ② Dockerが「hello-world」イメージをローカルで探す ↓ ③ ローカルにないので、Docker Hub(インターネット上のリポジトリ)からダウンロード → “Unable to find image ‘hello-world:latest’ locally” → “Pulling from library/hello-world” ↓ ④ ダウンロードしたイメージからコンテナを作成 ↓ ⑤ コンテナ内のプログラムを実行(メッセージを表示) → “Hello from Docker!” ↓ ⑥ プログラムが終了し、コンテナも停止
💡 重要な概念:イメージとコンテナ
  • イメージ:コンテナの「設計図」(読み取り専用のテンプレート)
  • コンテナ:イメージから作成された「実行中のインスタンス」

料理で例えると、イメージは「レシピ」、コンテナは「実際に作った料理」です。
1つのレシピ(イメージ)から、同じ料理(コンテナ)を何個でも作れます。

⚙️ 6. Docker Engineのアーキテクチャ

6-1. Docker Engineの構成要素

Docker Engineは、複数のコンポーネントが連携して動作しています。
仕組みを理解しておくと、トラブルシューティングの際に役立ちます。

【Docker Engineの構成図】 ┌─────────────────────────────────────┐ │ ユーザー │ │ (あなた) │ └─────────────────────────────────────┘ ↓ コマンド入力 ┌─────────────────────────────────────┐ │ Docker Client (CLI) │ │ ・docker run │ │ ・docker ps │ │ ・docker build など │ └─────────────────────────────────────┘ ↓ REST API通信 ┌─────────────────────────────────────┐ │ Docker Daemon (dockerd) │ │ ・イメージの管理 │ │ ・コンテナの管理 │ │ ・ネットワークの管理 │ │ ・ボリュームの管理 │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ containerd │ │ ・コンテナのライフサイクル管理 │ │ ・イメージの取得・保存 │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ runc │ │ ・実際にコンテナを起動 │ │ ・Linuxカーネル機能を利用 │ └─────────────────────────────────────┘

6-2. 各コンポーネントの役割

コンポーネント 役割 具体例
Docker Client ユーザーがコマンドを入力するインターフェース docker rundocker psなどのコマンド
Docker Daemon バックグラウンドで動作するサーバー。クライアントからのリクエストを処理 イメージのビルド、コンテナの起動/停止を実行
containerd コンテナのライフサイクル(作成→実行→停止→削除)を管理 Docker Hubからのイメージダウンロード
runc Linuxカーネルの機能を使ってコンテナを実際に起動 namespaceやcgroupsの設定

6-3. クライアント・サーバーモデル

Dockerはクライアント・サーバーモデルで動作します。

📚 クライアント・サーバーモデルとは?

クライアント(依頼する側)サーバー(処理する側)が分かれている仕組みです。

  • Docker Client:ユーザーからのコマンドを受け取り、Daemonに依頼
  • Docker Daemon:依頼を受けて実際の処理を実行

この仕組みにより、リモートサーバー上のDockerを操作することも可能です。

🔧 7. トラブルシューティング

7-1. よくあるエラーと解決方法

Dockerを使い始めるときによく遭遇するエラーと、その解決方法を紹介します。

エラー1:「Docker daemon is not running」

❌ エラーメッセージ
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
📝 原因

Docker Daemonが起動していません。

✅ 解決方法

Windows / Mac の場合:

Docker Desktopを起動してください。タスクトレイ(Windows)またはメニューバー(Mac)のDockerアイコンが緑色になるまで待ちます。

Linux の場合:

sudo systemctl start docker

エラー2:「permission denied」(Linux)

❌ エラーメッセージ
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
📝 原因

現在のユーザーがdockerグループに所属していないため、権限がありません。

✅ 解決方法
# ユーザーをdockerグループに追加 sudo usermod -aG docker $USER # 設定を反映 newgrp docker # または、一度ログアウトして再ログイン

エラー3:「WSL 2 installation is incomplete」(Windows)

❌ エラーメッセージ
WSL 2 installation is incomplete. The WSL 2 Linux kernel is not installed.
📝 原因

WSL 2が正しくインストールされていない、またはWSL 2カーネルが更新されていません。

✅ 解決方法
# PowerShell(管理者権限)で実行 # WSLを更新 wsl –update # WSL 2をデフォルトに設定 wsl –set-default-version 2 # 再起動

エラー4:「Docker Desktop failed to start」

❌ 症状

Docker Desktopを起動しても、すぐに終了してしまう。または起動画面のまま進まない。

📝 原因

仮想化機能が無効になっている可能性があります。

✅ 解決方法
  1. BIOSで仮想化機能を有効化
    • パソコンを再起動し、BIOS設定画面に入る(起動時にF2、Delete、F10などを押す)
    • 「Virtualization Technology」「Intel VT-x」「AMD-V」などの項目を「Enabled」に変更
  2. Windowsの機能を確認
    • 「Windows の機能の有効化または無効化」を開く
    • 「仮想マシン プラットフォーム」と「Linux 用 Windows サブシステム」にチェックが入っているか確認

エラー5:WSLのバージョンが1になっている

❌ 症状

wsl --list --verbose でVERSIONが「1」と表示される。

✅ 解決方法
# WSL 2に変換 wsl –set-version Ubuntu 2 # デフォルトをWSL 2に設定 wsl –set-default-version 2

7-2. Docker Desktopの設定調整

Docker Desktopが重い場合や、パフォーマンスを改善したい場合は、リソース設定を調整します。

⚙️ リソース設定の変更方法
  1. Docker Desktopを開く
  2. 右上の歯車アイコン(Settings)をクリック
  3. Resources」を選択
  4. 以下の項目を調整:
    • CPUs:Dockerに割り当てるCPUコア数(推奨: 2以上)
    • Memory:Dockerに割り当てるメモリ(推奨: 4GB以上)
    • Disk image size:Dockerイメージを保存する領域のサイズ
  5. Apply & Restart」をクリック
💡 設定の目安

軽い作業(学習目的):CPU 2コア、メモリ 4GB
本格的な開発:CPU 4コア以上、メモリ 8GB以上

ただし、ホストマシン(あなたのパソコン)の半分以上のリソースをDockerに割り当てると、
パソコン全体の動作が遅くなる可能性があります。

📝 STEP 3 のまとめ

✅ このステップで学んだこと
  • Docker Desktopを使えば、Windows/Macで簡単にDockerを使える
  • WSL 2を有効化すれば、Windows Home版でもDockerが使える
  • Linuxでは、Docker Engineをコマンドでインストール
  • docker –versionでバージョン確認、docker run hello-worldで動作確認
  • Docker EngineはClient → Daemon → containerd → runcの階層構造
  • よくあるエラーの対処法を理解
📊 OS別インストール方法のまとめ
OS インストール方法 ポイント
Windows WSL 2 + Docker Desktop WSL 2の有効化を忘れずに。Home版でも使用可能。
Mac Docker Desktop Intel / Apple Siliconで異なるインストーラーを使用。
Linux Docker Engine コマンドでインストール。dockerグループへの追加を忘れずに。
💡 重要ポイント

Dockerのインストールは、最初の一歩です。
インストールさえできれば、あとはコマンドを覚えるだけ

次のSTEP 4では、実際にPostgreSQLコンテナを起動して、
データベースを操作してみましょう。いよいよ実践編の始まりです!

🎯 次のステップの予告

次のSTEP 4では、「初めてのDockerコンテナ実行」を行います。

  • PostgreSQLコンテナの起動
  • コンテナへの接続方法
  • データベースの基本操作
  • コンテナの停止と削除

Dockerの便利さを実感できるステップです!

📝

学習メモ

Docker・コンテナ技術入門 - Step 3

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE