言語を切り替える
テーマを切り替える

Dockerインストール完全ガイド2025:Permission Deniedから成功までの全手順

はじめに

先週の水曜日の夜10時、ターミナルに表示された赤い「permission denied」という文字を見つめながら、心の中で叫び出したい気分でした。Dockerをインストールしようとしたのはこれで3回目です。最初はWSL 2のエラー、次はデーモンが起動せず、今回はやっとインストールできたと思ったら docker ps でまた権限エラー。

この絶望感、あなたも味わったことがあるかもしれません。

正直なところ、Dockerのインストールは本来簡単であるべきです。インストーラーをダウンロードして、ダブルクリックして、次へ次へと進むだけ。しかし、現実はそう甘くありません。WindowsではWSL 2とHyper-Vの設定が必要で、MacではIntelとAppleシリコンの違いがあり、Linuxでは依存関係やユーザー権限の罠が待ち受けています。各プラットフォームにそれぞれの「指定席」のようなエラーが存在します。

この記事は、私が踏み抜いてきたすべての「地雷」の記録と解決策です。Windows、Mac、Linuxの3大プラットフォームで発生する10以上の一般的な問題を整理し、2025年時点での最新の解決策(2020〜2022年の古い情報はもう役立ちません)をまとめました。さて、あなたはどのプラットフォームで詰まっていますか?続きを読んで解決しましょう。

Windowsプラットフォームのよくある問題

WindowsでのDockerインストールは、基本的にWSL 2とHyper-Vという2つの機能との戦いです。Docker Desktopは現在WSL 2バックエンドを強制するため、システムバージョンが古かったり仮想化が無効だったりすると、不可解なエラーメッセージに悩まされることになります。

問題1:WSL 2のインストールが不完全

これが最も多いケースです。Docker Desktopをインストールして起動すると、「WSL 2 installation is incomplete」というポップアップが出て、それ以上何も教えてくれません。

エラー内容:

Docker Desktop requires WSL 2 backend
WSL 2 installation is incomplete

解決策:

  1. Windowsバージョンの確認Win + Rを押し、winverと入力してEnter。バージョンがWindows 10 22H2 (build 19045) または Windows 11 23H2 (build 22631+) 以上であることを確認してください。古ければWindows Updateが必要です。

  2. 機能の有効化:コントロールパネル → 「プログラムと機能」 → 「Windowsの機能の有効化または無効化」を開き、「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」の両方にチェックを入れます。完了したら必ず再起動してください。

  3. WSLの更新:再起動後、PowerShellを管理者として開き、以下を実行します:

    wsl --update
    wsl --set-default-version 2

    1行目でWSLを最新版(2.1.5以上推奨)に更新し、2行目でWSL 2をデフォルトにします。

それでもダメな場合は、BIOS設定を確認してください。PCを再起動し、BIOSに入って「Virtualization Technology」や「Intel VT-x / AMD-V」がEnabledになっているか確認します。

問題2:Hyper-Vの競合

時々、以下のような不気味なエラーが出ます:

HCS_E_HYPERV_NOT_INSTALLED
Docker Desktop - Unexpected WSL error

これはHyper-Vがインストールされていないか、他の仮想化ソフトと競合している可能性があります。

解決策:
Hyper-Vが無効になっている場合は、Windowsの機能で「Hyper-V」にチェックを入れて有効化し、再起動します(Home版はHyper-VがないためWSL 2バックエンドのみ使用可能)。

VMwareやVirtualBoxと併用している場合、競合が起きることがあります。Docker Desktop 4.x以降はWSL 2の使用が推奨されており、VMware Workstation 15.5以降はHyper-Vと共存可能とされていますが、挙動が怪しいことも多いです。
基本的には、開発環境はDocker Desktop (WSL 2)、本番環境のテストなどは別の仮想マシンで行うなど、使い分けるのが無難です。

問題3:インストール権限不足

インストール中に以下のエラーが出る場合:

Installation Failed
Component CommunityInstaller.EnableFeaturesAction failed

これは管理者権限がないか、ウイルス対策ソフトにブロックされています。

解決策:
インストーラーを右クリックし、「管理者として実行」を選択してください。また、Cドライブの空き容量も確認しましょう。Docker Desktopは最低10GB、イメージが増えればそれ以上の空きが必要です。

Macプラットフォームのよくある問題

Macは比較的安定していますが、Appleシリコン(M1/M2/M3)の登場で新たな落とし穴が増えました。Intel版とAppleシリコン版を間違えるのが典型的です。

問題1:M1/M2/M3チップの互換性

Docker Desktopのアイコンが表示されない、あるいは「Docker Desktop is starting…」のまま永遠に終わらない場合、そしてターミナルで以下のエラーが出る場合:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running?

十中八九、間違ったバージョンをインストールしています。

解決策:
左上のAppleメニュー → 「このMacについて」でチップを確認します。「Apple M1」などが表示されていれば「Mac with Apple chip」版を、「Intel Core」なら「Mac with Intel chip」版をダウンロードしてください。
間違えてインストールした場合は、一度完全にアンインストール(設定ファイル含む)してから入れ直すのが確実です。

# クリーンアンインストールの一例
sudo rm -rf /Applications/Docker.app
rm -rf ~/Library/Containers/com.docker.docker
rm -rf ~/.docker

M1/M2 Macでx86(Intel用)のイメージを動かすには、Rosetta 2が必要です。まだなら以下でインストール:

softwareupdate --install-rosetta

問題2:ファイルマウントの権限拒否

コンテナを実行してローカルディレクトリをマウントしようとするとエラーが出る:

Error response from daemon: Mounts denied:
The path /Users/yourname/project is not shared from the host...

macOSはプライバシー保護が厳しく、Dockerがアクセスできるパスが制限されています。

解決策:
Docker Desktopの設定 → Resources → File Sharing に移動し、マウントしたいディレクトリ(またはその親ディレクトリ)を追加します。デフォルトでは /Users などは許可されていますが、外付けHDDや /tmp 以外の特殊なパスを使う場合は追加が必要です。

また、システム環境設定 → 「プライバシーとセキュリティ」 → 「フルディスクアクセス」でDocker Desktopが許可されているかも確認してください。

Linuxプラットフォームのよくある問題

LinuxはDockerのホームグラウンドなので簡単だと思いきや、権限周りで初心者が必ず躓きます。

問題1:Permission Denied(出現頻度No.1)

インストール後、docker ps を実行すると:

docker: Got permission denied while trying to connect to the Docker daemon socket
at unix:///var/run/docker.sock: ... connect: permission denied.

これは、Dockerデーモンがroot権限で動いているのに対し、現在のユーザーにアクセス権がないためです。

解決策:
ユーザーを docker グループに追加します。

sudo usermod -aG docker $USER

重要: 追加しただけでは反映されません。一度ログアウトして再ログインするか、以下のコマンドでグループを再ロードしてください:

newgrp docker

groups コマンドを実行して docker が含まれていれば成功です。これで sudo なしでdockerコマンドが使えます。

問題2:依存パッケージの不足(Ubuntu/Debian系)

docker-desktop : Depends: docker-ce-cli but it is not installable

これは、システムのデフォルトリポジトリにDockerが含まれていないか、バージョンが古いために起こります。

解決策(Ubuntu):
公式のDockerリポジトリを追加してからインストールします。

# 1. 古いバージョンを削除
sudo apt-get remove docker docker-engine docker.io containerd runc

# 2. 必要なパッケージをインストール
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

# 3. 公式GPGキーを追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 4. リポジトリを設定
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

# 5. インストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Linux Mintなどの派生ディストリビューションを使っている場合は、$(lsb_release -cs) の部分をベースとなっているUbuntuのコードネーム(例:jammy)に書き換える必要があるかもしれません。

問題3:デーモンが起動しない

Cannot connect to the Docker daemon... Is the docker daemon running?

Linuxではsystemdで管理されています。

解決策:

sudo systemctl status docker

で状態を確認し、active (running) でなければ起動します:

sudo systemctl start docker
sudo systemctl enable docker  # 自動起動設定

共通のチェックリストとベストプラクティス

プラットフォームに関わらず、インストール後に行うべき手順です。

1. インストール確認

いきなり作業を始めず、まずは確認します。

docker --version
docker run hello-world
docker info

hello-world コンテナが動き、「Hello from Docker!」と表示されれば正常です。

2. イメージミラーの設定(日本国内推奨)

Docker Hubは時々遅くなるので、ミラーを設定しておくと快適です。(※企業環境などではポリシーに従ってください)
/etc/docker/daemon.json(Linux)またはDocker Desktopの設定(Docker Engine)に以下を追加:

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io" 
  ]
}

設定後はDockerの再起動が必要です。

3. トラブルシューティングの基本ステップ

何かあったら、まずこの順序で確認しましょう:

  1. 基本環境:OSバージョン、ディスク容量は十分か?
  2. 権限dockerグループに入っているか?(Linux)
  3. サービス:Docker Desktop/デーモンは起動しているか?
  4. 競合:ポート2375などを他が使っていないか?
  5. ログjournalctl -u docker(Linux)やDocker Desktopのログを見る。

結論

Dockerのインストールは、プラットフォームごとの癖を理解すれば怖くありません。WindowsのWSL 2、Macのチップバージョン、Linuxの権限——これらはすべて「通過儀礼」のようなものです。この記事の解決策を使えば、赤いエラーメッセージに絶望することなく、スムーズに開発を始められるはずです。

もしこの記事でも解決しない問題に遭遇したら、ぜひシステム情報とエラーログを持ってコミュニティ(英語で検索するのがコツです)に助けを求めてください。

さあ、docker run hello-world で新しい世界へ!

Dockerインストール完全フロー(全OS対応)

Windows, Mac, Linux各プラットフォームにおけるDockerインストールの手順とトラブルシューティング

⏱️ Estimated time: 30 min

  1. 1

    Step1: Windowsへのインストール

    Win10 22H2/Win11 23H2以上を確認し、機能の有効化でWSLと仮想マシンプラットフォームをオンにする。PowerShellで`wsl --update`を実行後、Docker Desktopインストーラーを管理者権限で実行する。
  2. 2

    Step2: Macへのインストール

    Appleメニューからチップを確認(Intel or Apple M1/M2)。対応するバージョンのDocker Desktopをダウンロードしてインストール。M1/M2の場合は`softwareupdate --install-rosetta`が必要な場合がある。
  3. 3

    Step3: Linuxへのインストール

    古いバージョンを削除し、Docker公式GPGキーとリポジトリを追加。`apt-get install`で最新版をインストールし、`sudo systemctl start docker`で起動する。
  4. 4

    Step4: Linux権限設定(必須)

    `sudo usermod -aG docker $USER`を実行し、現在のユーザーをdockerグループに追加。ログアウト/ログインまたは`newgrp docker`で反映させ、sudoなしでの実行を可能にする。
  5. 5

    Step5: 動作確認

    `docker --version`でバージョン確認、`docker run hello-world`でコンテナ実行テストを行う。

FAQ

WindowsでWSL 2 installation is incompleteと表示されます
WSL 2コンポーネントが不足しています。PowerShell(管理者)で `wsl --update` を実行してカーネルを更新してください。また、Windowsの機能で「Linux用Windowsサブシステム」が有効になっているか確認してください。
Linuxでdockerコマンド実行時にPermission Deniedになります
現在のユーザーがdockerグループに所属していません。`sudo usermod -aG docker $USER` を実行してグループに追加し、再ログインしてください。
Mac(M1/M2)でDockerが起動しません
Intelチップ用のDocker Desktopをインストールしている可能性があります。公式サイトから「Mac with Apple chip」版をダウンロードして再インストールしてください。

5 min read · 公開日: 2025年12月17日 · 更新日: 2026年1月22日

コメント

GitHubアカウントでログインしてコメントできます

関連記事