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

Docker インストールの落とし穴ガイド 2025:permission denied から正常起動までの完全解決策

3 回目の Docker インストール——1 回目は WSL 2 エラー、2 回目はデーモンが起動しない、ようやく入れたのに docker ps で permission denied。

Docker のインストールは本来シンプルなはずです。インストーラーを落として、ダブルクリック、次へ。でも現実は、Windows では WSL 2 と Hyper-V、Mac では Intel と Apple チップの版の違い、Linux では依存パッケージとユーザーグループの権限——各プラットフォームに「落とし穴の指定席」があります。

この記事は、私が踏んだ落とし穴を振り返って整理したものです。Windows、Mac、Linux の三大プラットフォームで最も多い 10 件以上の問題と、2025 年時点の最新の解決策(はい、2020〜2022 年のチュートリアルの多くはすでに古いです)を載せています。では、どのプラットフォームでどんなエラーが出ていますか? 下を見れば、きっと当てはまる項目があるはずです。

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

Windows で Docker を入れる作業は、基本的に WSL 2 と Hyper-V との格闘です。Docker Desktop は現在 WSL 2 バックエンドを必須としているため、OS バージョンが合わない、仮想化がオフ——そういう状態だと、意味不明な cryptic error message ばかりが出ます。

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

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

エラー例:

Docker Desktop requires WSL 2 backend
WSL 2 installation is incomplete

根本原因はだいたい 3 つ。Windows バージョンが古い(10.0.19041 未満)、WSL 機能が有効になっていない、BIOS の仮想化がオフ——のいずれかです。

修正方法:

第 1 ステップ、Windows バージョンを確認します。Win+R を押し、winver と入力して Enter。Windows 10 22H2(build 19045)以上、または Windows 11 23H2(build 22631 以上)が必要です。足りなければ先に OS をアップデートしてください。

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

第 3 ステップ、WSL バージョンを更新します。再起動後、PowerShell を管理者として開き、次を実行します:

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

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

それでもダメなら BIOS 設定です。PC を再起動し、Del または F2(マザーボードにより異なる)で BIOS に入り、Virtualization Technology または Intel VT-x / AMD-V を Enabled に変更します。Intel は VT-x、AMD は AMD-V——意味は同じです。

問題 2:Hyper-V の競合

ときどき、こんな不気味なエラーが出ます:

HCS_E_HYPERV_NOT_INSTALLED
Docker Desktop - Unexpected WSL error

Hyper-V が入っていないか、他の仮想化ソフトと競合しています。Docker Desktop は下層で Hyper-V(または WSL 2)に依存するため、VMware や VirtualBox を同時に使っていると衝突することがあります。

修正方法:

Hyper-V がオフの場合は、Windows の機能で「Hyper-V」を探し、サブ項目も含めてすべて有効化して再起動します。Windows Home 版は Hyper-V 非対応のため、WSL 2 バックエンドのみ使えます。

VMware や VirtualBox も使っているなら、どちらかに寄せる必要があります。Docker Desktop 4.x 以降は WSL 2 バックエンドが主流で、VMware Workstation 15.5 以降は Hyper-V と共存できるとされていますが、小さな不具合は残りがちです。

正直、いちばん楽なのは開発環境は Docker Desktop(WSL 2)、本番や VM テストは VMware / VirtualBox——と分けることです。

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

インストール段階で次のエラーが出ることがあります:

Installation Failed
Component CommunityInstaller.EnableFeaturesAction failed

原因はシンプル。管理者権限でインストーラーを実行していない、またはウイルス対策ソフトにブロックされている。

修正方法:

Docker Desktop インストーラーを右クリックし、「管理者として実行」を選びます。インストール中にファイアウォールやウイルス対策の確認が出たら、許可してください。

見落としがちなのが C ドライブの空き容量です。Docker Desktop は最低 10 GB の空きが必要で、イメージが増えるとさらに必要になります。C ドライブが足りない場合は、インストール後に Docker のデータ保存場所を変更できますが、それは別の話です。

会社 PC でグループポリシー制限があると、インストールできないこともあります。その場合は IT 部門に権限を依頼するか、Linux サブシステムに Docker Engine を入れて回避する方法もあります(ただし GUI はありません)。

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

Mac への Docker インストールは比較的楽ですが、Apple が M1/M2 チップを出してから新しい落とし穴が増えました。典型例は版の取り違え——Intel 版を Apple チップ Mac に入れる、またはその逆。

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

症状ははっきりしています。Docker Desktop のアイコンがメニューバーに出ない、または出ても「Docker Desktop is starting…」のまま終わらない。ターミナルで docker コマンドを実行すると:

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

大半はインストーラーの取り違えです。Docker 公式サイトには「Mac with Apple chip」と「Mac with Intel chip」の 2 版があり、間違えると起動しません。

修正方法:

まず Mac のチップを確認します。左上の Apple メニュー → この Mac について、「チップ」欄を見ます。「Apple M1」や「Apple M2」なら Apple Silicon 版、「Intel Core」なら Intel 版が必要です。

間違えて入れた場合は完全アンインストールが必要です。ターミナルで次を実行します:

# Docker Desktop をアンインストール
/Applications/Docker.app/Contents/MacOS/uninstall

# 残った設定ファイルを削除
rm -rf ~/Library/Group\ Containers/group.com.docker
rm -rf ~/Library/Containers/com.docker.docker
rm -rf ~/.docker

これらのコマンドで Docker とキャッシュをきれいに削除できます。その後、公式サイトからチップに合った版を再ダウンロードしてインストールしてください。

もう一つ:M1/M2 Mac では一部の x86 イメージに Rosetta 2 が必要です。未インストールなら次を実行します:

softwareupdate --install-rosetta

インストール後、Docker Desktop を再起動すれば正常に起動するはずです。

問題 2:デーモン起動の停止

Docker Desktop は起動し、アイコンも出るのに「Starting…」のまま進まない——Activity Monitor(アクティビティモニタ)では Docker プロセスが動いているのに使えない、というパターンです。

設定ファイルの破損か、Docker のポートを別プロセスが占有していることが多いです。

修正方法:

第 1 手、Docker Desktop をリセットします。メニューバーの Docker アイコン → Troubleshoot(問題診断)→「Reset to factory defaults」。コンテナ、イメージ、設定がすべて消え、工場出荷状態に戻ります。重要なイメージがある場合は先にバックアップを。

リセットでもダメなら、ポート競合を確認します。Docker はデフォルトで 2375 と 2376 を使います。次を実行します:

# ポート使用状況を確認
lsof -i :2375
lsof -i :2376

# 出力があれば PID をメモしてプロセスを終了
kill -9 <PID>

競合プロセスを終了したあと、Docker Desktop を再起動してみてください。

さらに強い方法として、Docker の VM ファイルを削除します:

rm -rf ~/Library/Containers/com.docker.docker/Data/vms

これで Docker に VM 環境の再構築を強制できます。削除後に Docker Desktop を再起動すると、新しい VM が自動作成されます。

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

コンテナ実行時にローカルディレクトリをマウントすると、次のエラーが出ることがあります:

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

マウント先への Docker のアクセス権がないためです。macOS はプライバシー保護が厳しく、Docker がアクセスできるパスは限定されています。

修正方法:

Docker Desktop の設定 → Resources → File Sharing を開き、プラスボタンでマウントしたいディレクトリを追加します。一般に /Users/Volumes/private/tmp はデフォルトで許可されていますが、サブディレクトリは個別追加が必要な場合があります。

それでもダメなら、システム設定 → プライバシーとセキュリティ → プライバシー → フルディスクアクセスで Docker Desktop にチェックが入っているか確認してください。macOS 14.3 以降は権限管理がより厳しいため、この手順を忘れないでください。

外付け HDD やネットワーク共有をマウントする場合も、Docker 設定で個別に指定が必要なことがあります。外付けドライブは通常 /Volumes 配下なので、そこも追加しておきましょう。

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

Linux への Docker インストールは理論上いちばん簡単——Docker はもともと Linux 向けに設計されています。でも実際には落とし穴も多く、特に権限と依存パッケージが厄介です。

問題 1:Permission Denied(出現頻度トップ)

Linux 初心者ならほぼ全員が一度は踏みます。Docker を入れたあと、期待半分で docker ps を実行すると:

docker: Got permission denied while trying to connect to the Docker daemon socket
at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/...":
dial unix /var/run/docker.sock: connect: permission denied.

長い赤文字を見ると心が折れがちです。原因は、Docker デーモンが root で動いているのに、現在のユーザーが /var/run/docker.sock にアクセス権を持っていないことです。

修正方法:

ユーザーを docker グループに追加します:

sudo usermod -aG docker $USER

このコマンドは、現在のユーザー($USER)を docker グループ(-aG docker)に追加する意味です。ただし、ここで終わりではありません。

グループ変更は即座に反映されません。再ログインするか、グループを更新する必要があります:

newgrp docker

または一度ログアウトして再ログインしてください。ここで止まる人が多い——グループは変えたのに再ログインせず、エラーが続くと「方法が間違っている」と思い込むパターンです。

反映を確認します:

groups

出力に docker があれば OK です。もう一度 docker ps を試してください。エラーは出なくなるはずです。

ただし、セキュリティ上の注意があります。docker グループへの追加は、そのユーザーに root 相当の権限を与えることと同義です——Docker はファイルシステム全体にアクセスできます。個人開発 PC なら問題ありませんが、本番サーバーでは慎重に。

それでもダメなら socket ファイルの権限を確認します:

ls -l /var/run/docker.sock

正常なら srw-rw---- 1 root docker と表示されます。違う場合は一時的に:

sudo chmod 666 /var/run/docker.sock

と変更できますが、再起動で元に戻ります。正しい方法はユーザーグループへの追加です。

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

インストール段階で次のようなエラーが出ることがあります:

docker-desktop : Depends: docker-ce-cli but it is not installable
The following packages have unmet dependencies:
 docker-desktop : Depends: pass but it is not installable
                  Depends: uidmap but it is not installable
                  Depends: gnome-terminal but it is not installable

たくさん足りないように見えますが、根本原因は Docker 公式リポジトリを追加していないことです。システム標準の apt ソースには Docker がないか、バージョンが古いだけです。

修正方法(Ubuntu の例):

まず旧バージョンをアンインストールします(あれば):

sudo apt-get remove docker docker-engine docker.io containerd runc

次に Docker 公式リポジトリを設定します。このステップが重要で、多くのチュートリアルが省略したり簡略化しすぎています:

# apt パッケージインデックスを更新
sudo apt-get update

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

# Docker 公式 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

# 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

最後の行の $(lsb_release -cs) は Ubuntu のコードネーム(jammy、focal など)を自動検出します。Linux Mint を使っている場合は注意——Mint は Ubuntu ベースですがバージョン表記が異なります。/etc/os-release を確認し、UBUNTU_CODENAME の値を使い、Mint 独自のバージョン番号は使わないでください。

リポジトリ追加後、更新してインストールします:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

今度は Docker 公式ソースから取得するため、依存関係も解決されます。インストール後、docker --version で確認してください。

問題 3:デーモン起動失敗

Docker を入れたあとコマンドを実行すると:

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

Mac と似たメッセージですが、Linux ではデーモンは systemd で管理されるため、確認方法が異なります。

修正方法:

まず Docker サービスの状態を確認します:

sudo systemctl status docker

inactive (dead)failed なら、起動していないか起動に失敗しています。手動起動を試します:

sudo systemctl start docker
sudo systemctl enable docker  # 起動時自動起動

起動に失敗する場合は詳細ログを確認します:

sudo journalctl -u docker.service -n 50

直近 50 行が表示され、具体的なエラー原因がわかることが多いです。

よくあるサブ問題:

SELinux との競合(CentOS / RHEL):
ログに SELinux 関連のエラーがあれば、一時的に:

sudo setenforce Permissive

再起動すると元に戻ります。永久無効化は /etc/selinux/config の編集が必要ですが、本番環境では SELinux を切るよりポリシー設定が望ましいです。

設定ファイルの構文エラー:
/etc/docker/daemon.json を編集した場合、JSON 構文を確認してください。カンマの抜け、余分な引用符だけで起動に失敗します。jsonlint やオンラインツールで検証できます。

ファイアウォールによるブロック:
一部のディストリビューションではファイアウォールが厳しく、Docker をブロックすることがあります。一時的に無効化してテストします:

sudo systemctl stop firewalld  # CentOS/RHEL
sudo ufw disable              # Ubuntu

無効化後に起動できればファイアウォールが原因です。ルールを設定して Docker を許可してください。

問題 4:ポート競合

出会う頻度は低めですが、遭遇すると厄介です:

Error starting daemon: error initializing graphdriver: driver not supported
bind: address already in use

Docker のデフォルトポート(2375 または 2376)を別プログラムが使っているか、リモートアクセス設定でポートが競合していることが多いです。

修正方法:

ポート使用状況を確認します:

sudo netstat -tulnp | grep 2375
sudo netstat -tulnp | grep 2376

出力があれば PID をメモし、占有プロセスを終了します:

sudo kill -9 <PID>

リモートで Docker にアクセスする必要がある場合(非推奨、セキュリティリスクあり)、リッスンポートを変更できます。/etc/docker/daemon.json を編集します:

{
  "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2376"]
}

ここではループバック 127.0.0.1 のみリッスンするため、比較的安全です。すべてのインターフェース(0.0.0.0)でリッスンする場合は TLS 暗号化を必ず設定し、平文のまま公開しないでください。

設定変更後、Docker を再起動します:

sudo systemctl daemon-reload
sudo systemctl restart docker

注意:daemon.json と systemd サービスファイルの両方で hosts を設定すると競合します。/lib/systemd/system/docker.service を確認し、ExecStart 行に -H パラメータがあればコメントアウトし、daemon.json のみで設定してください。

Docker インストール完全フロー(三大プラットフォーム)

インストールから検証までの完全手順。Windows、Mac、Linux のよくある問題と解決策を網羅

Estimated time: PT30M

  1. 1

    Step 1: Windows プラットフォームのインストール手順

    Windows バージョンを確認:
  2. 2

    Step 2: Mac プラットフォームのインストール手順

    Mac のチップ種別を確認:
  3. 3

    Step 3: Linux プラットフォームのインストール手順

    旧バージョンをアンインストール:
  4. 4

    Step 4: Linux Permission Denied の解決

    ユーザーを docker グループに追加:
  5. 5

    Step 5: インストール確認と設定

    インストール確認:

共通の問題とベストプラクティス

どのプラットフォームでも、Docker インストール後に共通で行う確認と設定がいくつかあります。後から困らないために、ここを押さえておきましょう。

インストール成功の確認

すぐに使い始めず、まず Docker が本当に入ったか確認します。次のコマンドを実行してください:

# Docker バージョンを表示
docker --version

# Docker Compose バージョンを表示(新版は Docker に統合)
docker compose version

# テストコンテナを実行(公式 Hello World)
docker run hello-world

# システム情報を表示
docker info

docker run hello-world は小さなイメージを取得して実行します。「Hello from Docker!」と表示されれば正常です。docker info ではストレージドライバ、ログドライバ、コンテナ数などが確認でき、問題のときに役立ちます。

ミラー加速の設定(国内ユーザーは必須)

国内ユーザーでミラー加速を設定しないと、イメージの pull が遅くてネットワークを疑いたくなります。Docker Hub 公式ソースは国内からのアクセスが不安定で、タイムアウトも多いです。

Docker 設定ファイルを編集します(Linux は /etc/docker/daemon.json、Windows / Mac は Docker Desktop 設定の Docker Engine タブ):

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

保存後、Docker を再起動します:

# Linux
sudo systemctl restart docker

# Mac / Windows:Docker アイコンを右クリック → Restart

設定が効いているか確認します:

docker info | grep -A 5 "Registry Mirrors"

設定したミラーアドレスが表示されるはずです。

国内の公共ミラーソースも安定しないことがあるため、複数を登録しておくと安心です。アカウント登録が必要なミラー(Alibaba Cloud Container Registry など)もありますが、速度は確かに速いです。

ログサイズの制限(ディスク圧迫の防止)

Docker コンテナのログはデフォルトでサイズ上限がなく、長期稼働コンテナが数十 GB のログを生成し、ディスクを圧迫することがあります。私も一度、サーバーのディスクが満杯になり全コンテナが停止した経験があります。

daemon.json にログ設定を追加します:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

各コンテナのログは最大 10 MB、直近 3 ファイルを保持します。10 MB を超えるとローテーションされ、古いログは削除されます。

ログを長期保存したい場合は、ELK や Loki などのログシステムを使い、ローカルに直接溜め込まない方がよいです。

ストレージドライバの設定

ストレージドライバによって性能差は大きいです。Linux では overlay2 が推奨で、現在最も高速です。多くの最新システムではデフォルトですが、古い版では devicemapperaufs のままで性能が劣ることがあります。

現在のストレージドライバを確認します:

docker info | grep "Storage Driver"

overlay2 でなければ、daemon.json に追加します:

{
  "storage-driver": "overlay2"
}

ストレージドライバの変更には Docker の再起動が必要で、すべてのコンテナとイメージデータが消えます。重要なデータは事前にバックアップしてください。

落とし穴を避ける心得

踏んだ落とし穴から得た経験をいくつか:

  1. 公式ドキュメントを優先。Docker 公式(docs.docker.com)は明快で、検索結果の多くのチュートリアルはコピペで、しかも間違ったコピペです。問題が出たらまず公式を当たると時間を節約できます。

  2. チュートリアルの公開時期に注意。Docker の更新は速く、2020〜2022 年の記事の多くはすでに古いです。読む前に公開日を確認し、直近 1〜2 年のものを優先してください。

  3. docker info と logs を活用docker info でシステム設定、docker logs <コンテナ ID> でコンテナ出力、journalctl -u docker.service(Linux)でデーモンログ——問題の 90% はログに手がかりがあります。

  4. VM 内に Docker Desktop を入れない。Docker Desktop 自体が VM 上で動くため、VM の中にさらに入れるとネストした仮想化で性能が著しく落ち、不可解なエラーも出やすくなります。VM 内では Docker Engine を直接入れる方がよいです。

  5. root でコンテナを動かさない。一般ユーザーで動かせるコンテナは root を使わない。セキュリティのベストプラクティスです。手軽さのために root を使う人は多いですが、本番環境では絶対に避けてください。

クイック確認リスト

Docker で問題が起きて、どこから手を付ければいいかわからないときは、この順序で確認すれば、よくある問題の 90% は特定できます。

第 1 ステップ:基本環境の確認

  • Docker バージョンは十分新しいか? docker --version を実行。最新安定版を推奨
  • OS バージョンは要件を満たすか? Windows 10 19045+ / Win11 22631+、macOS 13+、Ubuntu 20.04+
  • ディスク空きは十分か? 最低 10 GB。Linux / Mac は df -h、Windows はエクスプローラーで確認

第 2 ステップ:権限とユーザーグループ(Linux / Mac)

  • 現在のユーザーは docker グループに入っているか? groups で docker が表示されること
  • グループ変更後に再ログインしたか? 忘れがち。newgrp docker またはログアウトして再ログイン
  • socket ファイルの権限は正しいか? ls -l /var/run/docker.socksrw-rw---- 1 root docker と表示されること

第 3 ステップ:サービスとプロセス

  • Docker デーモンは動いているか?
    • Linux:sudo systemctl status docker
    • Mac:アクティビティモニタで Docker を検索
    • Windows:タスクマネージャーで Docker Desktop を確認
  • ポート競合はないか? Linux は netstat -tulnp | grep docker、Mac は lsof -i :2375
  • ファイアウォールでブロックされていないか? 一時的に無効化してテスト(sudo systemctl stop firewalld または sudo ufw disable

第 4 ステップ:設定ファイル

  • daemon.json の構文は正しいか? JSON 検証ツールで確認。バックアップ後に削除して再起動する方法も有効
  • hosts が重複設定されていないか? daemon.json と systemd サービスファイルの両方を確認
  • ミラーソースにアクセスできるか? ping registry.docker-cn.com または curl https://docker.m.daocloud.io

第 5 ステップ:詳細ログの確認

ここが最も重要です。ログに正確なエラー情報が載っていることが多いです:

  • Linuxsudo journalctl -u docker.service -n 50
  • Mac~/Library/Containers/com.docker.docker/Data/log/ 配下のログファイル
  • Windows:イベントビューア → Windows ログ → アプリケーション → Docker Desktop

ログが読めなくても、完全なエラーメッセージをコピーして Google 検索すれば、同じ問題に遭遇した人が見つかることが多いです。英語で検索すると結果がより正確です。

第 6 ステップ:最終手段(どうしても解決しない場合)

次の「切り札」を順に試してください:

  1. Docker Desktop を工場出荷状態にリセット(Docker Desktop 設定 → Troubleshoot → Reset to factory defaults)
  2. 完全アンインストール後に再インストール(設定ファイルとキャッシュディレクトリも削除)
  3. ウイルス対策ソフトにブロックされていないか確認(一時的に無効化してテスト)
  4. 別バージョンを試す(最新版でダメなら、やや古い安定版)

これでも解決しない場合は、OS 情報、Docker バージョン、完全なエラーログを添えて Docker 公式フォーラムや Stack Overflow に投稿してください。コミュニティの方が助けてくれます。

結論

Docker のインストールは、難しくも簡単でもあります。難しいのは各プラットフォームに固有の落とし穴があるから——Windows は WSL 2 と仮想化、Mac はチップ版、Linux は権限と依存パッケージ。簡単なのは、これらの落とし穴には決まったパターンがあり、原因がわかれば手順どおり直せることです。

この記事に載せた permission denied、デーモン起動失敗、依存パッケージ不足——Docker インストールエラーの 80% 程度はここでカバーできます。残り 20% は環境依存の変わったケースかもしれませんが、ログの読み方、ドキュメントの当たり方、英語での検索を覚えれば、時間をかけて解決できます。

最後にいくつかアドバイス:

Docker を入れたらすぐ使わず、まず docker run hello-world で動作確認を。国内ユーザーはミラー加速を忘れずに——設定しないと pull が遅すぎてネットワークを疑うことになります。ログサイズ制限も入れておくと、後からディスク満杯で原因探しをしなくて済みます。

問題が出ても慌てず、この記事のクイック確認リストを上から試してください。大半は自分で直せます。どうしてもダメなら Docker 公式フォーラムや Stack Overflow に、完全なエラー情報と OS バージョンを添えて質問を。「Docker が入らない」だけでは助けてもらえません。

では、試してみてください。この記事が役に立ったら、まだ Docker インストールに苦しんでいる友人にも転送してください。みんなが落とし穴を踏む回数を減らせば、開発効率も上がります。それで十分価値があります。

FAQ

Windows で Docker のインストールに失敗し、WSL 2 installation is incomplete と表示される場合は?
次の 3 ステップです。
1) Windows バージョンを確認(Win+R で winver。Windows 10 22H2 / Win11 23H2 が必要)
2) WSL 機能を有効化(コントロールパネル → プログラムと機能 → Windows の機能の有効化または無効化で「Linux 用 Windows サブシステム」と「仮想マシンプラットフォーム」にチェック。必ず再起動)
3) WSL を更新(PowerShell を管理者として実行:wsl --update、wsl --set-default-version 2。WSL 2.1.5 以上が必要)

それでもダメなら BIOS で仮想化を有効化(Virtualization Technology または Intel VT-x / AMD-V を Enabled に)。
Mac で Docker Desktop が Starting... のまま起動しない場合は?
考えられる原因:

1) チップ版の取り違え:
• M1/M2 は Apple Silicon 版、Intel は Intel 版
• 確認方法:Apple メニュー → この Mac についてでチップを確認
• 間違えた場合は完全アンインストールして再インストール

2) デーモンの起動が止まる:
• Docker Desktop をリセット:メニューバーの Docker アイコン → Troubleshoot → Reset to factory defaults
• またはポート競合を確認:lsof -i :2375

3) 設定ファイルの破損:
• ~/Library/Containers/com.docker.docker/Data/vms を削除して VM を強制再作成

M1/M2 Mac で x86 イメージを動かす場合は Rosetta 2 が必要(softwareupdate --install-rosetta)。
Linux で docker ps を実行すると permission denied になる場合は?
解決方法:
1) ユーザーを docker グループに追加:sudo usermod -aG docker $USER
2) グループを反映:newgrp docker または再ログイン(この手順を忘れるとエラーが続く人が多い)
3) 確認:groups に docker が表示され、docker ps がエラーなく動くこと

注意:docker グループへの追加は root 相当の権限(Docker はファイルシステム全体にアクセス可能)。個人開発 PC なら問題ないが、本番サーバーでは慎重に。

それでもダメなら socket ファイルの権限を確認(ls -l /var/run/docker.sock は srw-rw---- 1 root docker と表示されるはず)。
Linux で Docker をインストールすると依存パッケージが不足すると表示される場合は?
根本原因:Docker 公式リポジトリを追加していない。

手順:
1) 旧バージョンをアンインストール:sudo apt-get remove docker docker-engine docker.io containerd runc
2) Docker 公式リポジトリを設定:
• ca-certificates curl gnupg lsb-release をインストール
• GPG キーを追加
• リポジトリを設定
• Linux Mint では Mint のバージョンではなく UBUNTU_CODENAME を使うこと
3) 更新してインストール:sudo apt-get update、sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker デーモンが起動に失敗する場合は?
確認手順:
1) サービス状態を確認:
• Linux:sudo systemctl status docker
• Mac:アクティビティモニタで Docker を検索
2) 手動起動:
• Linux:sudo systemctl start docker、sudo systemctl enable docker
3) 詳細ログを確認:
• Linux:sudo journalctl -u docker.service -n 50
• Mac:~/Library/Containers/com.docker.docker/Data/log/ ディレクトリ

よくある原因:
• SELinux との競合(CentOS/RHEL で一時的に無効化:sudo setenforce Permissive)
• 設定ファイルの構文エラー(/etc/docker/daemon.json を確認)
• ファイアウォールによるブロック(一時的に無効化してテスト)
Docker インストール後の確認と設定は?
インストール確認:
• docker --version、docker compose version を実行
• docker run hello-world(Hello from Docker! と表示されれば正常)
• docker info

ミラー加速の設定(国内ユーザーは必須):
• /etc/docker/daemon.json に registry-mirrors を追加(例:https://docker.m.daocloud.io)
• Docker を再起動

ログサイズの制限:
• daemon.json に log-driver と log-opts を追加(max-size 10m max-file 3。ディスクを圧迫しないため)

ストレージドライバの設定:
• docker info で確認。overlay2 でなければ daemon.json に storage-driver: overlay2 を追加
• ストレージドライバの変更は全データが消えるため、事前にバックアップ
Docker インストール問題のクイック確認リストは?
次の順で確認:

第 1 ステップ:基本環境
• Docker バージョン、OS バージョン、ディスク空き容量

第 2 ステップ:権限とユーザーグループ(Linux/Mac)
• groups コマンド、newgrp docker または再ログイン、socket ファイルの権限

第 3 ステップ:サービスとプロセス
• systemctl status docker、ポート競合、ファイアウォール

第 4 ステップ:設定ファイル
• daemon.json の構文、hosts の重複設定、ミラーソースへのアクセス

第 5 ステップ:詳細ログ
• journalctl -u docker.service またはログファイルのディレクトリ

第 6 ステップ:最終手段
• Docker Desktop のリセット、完全アンインストール後の再インストール、ウイルス対策ソフトの一時無効化、別バージョンの試行

よくある問題の 90% はこのリストで特定できる。

9分で読めます · 公開日: 2025年12月17日 · 更新日: 2026年6月8日

関連記事

コメント

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