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
Step 1: Windows プラットフォームのインストール手順
Windows バージョンを確認: -
2
Step 2: Mac プラットフォームのインストール手順
Mac のチップ種別を確認: -
3
Step 3: Linux プラットフォームのインストール手順
旧バージョンをアンインストール: -
4
Step 4: Linux Permission Denied の解決
ユーザーを docker グループに追加: -
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 が推奨で、現在最も高速です。多くの最新システムではデフォルトですが、古い版では devicemapper や aufs のままで性能が劣ることがあります。
現在のストレージドライバを確認します:
docker info | grep "Storage Driver"
overlay2 でなければ、daemon.json に追加します:
{
"storage-driver": "overlay2"
}
ストレージドライバの変更には Docker の再起動が必要で、すべてのコンテナとイメージデータが消えます。重要なデータは事前にバックアップしてください。
落とし穴を避ける心得
踏んだ落とし穴から得た経験をいくつか:
-
公式ドキュメントを優先。Docker 公式(docs.docker.com)は明快で、検索結果の多くのチュートリアルはコピペで、しかも間違ったコピペです。問題が出たらまず公式を当たると時間を節約できます。
-
チュートリアルの公開時期に注意。Docker の更新は速く、2020〜2022 年の記事の多くはすでに古いです。読む前に公開日を確認し、直近 1〜2 年のものを優先してください。
-
docker info と logs を活用。
docker infoでシステム設定、docker logs <コンテナ ID>でコンテナ出力、journalctl -u docker.service(Linux)でデーモンログ——問題の 90% はログに手がかりがあります。 -
VM 内に Docker Desktop を入れない。Docker Desktop 自体が VM 上で動くため、VM の中にさらに入れるとネストした仮想化で性能が著しく落ち、不可解なエラーも出やすくなります。VM 内では Docker Engine を直接入れる方がよいです。
-
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.sockでsrw-rw---- 1 root dockerと表示されること
第 3 ステップ:サービスとプロセス
- Docker デーモンは動いているか?
- Linux:
sudo systemctl status docker - Mac:アクティビティモニタで Docker を検索
- Windows:タスクマネージャーで Docker Desktop を確認
- Linux:
- ポート競合はないか? 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 ステップ:詳細ログの確認
ここが最も重要です。ログに正確なエラー情報が載っていることが多いです:
- Linux:
sudo journalctl -u docker.service -n 50 - Mac:
~/Library/Containers/com.docker.docker/Data/log/配下のログファイル - Windows:イベントビューア → Windows ログ → アプリケーション → Docker Desktop
ログが読めなくても、完全なエラーメッセージをコピーして Google 検索すれば、同じ問題に遭遇した人が見つかることが多いです。英語で検索すると結果がより正確です。
第 6 ステップ:最終手段(どうしても解決しない場合)
次の「切り札」を順に試してください:
- Docker Desktop を工場出荷状態にリセット(Docker Desktop 設定 → Troubleshoot → Reset to factory defaults)
- 完全アンインストール後に再インストール(設定ファイルとキャッシュディレクトリも削除)
- ウイルス対策ソフトにブロックされていないか確認(一時的に無効化してテスト)
- 別バージョンを試す(最新版でダメなら、やや古い安定版)
これでも解決しない場合は、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 と表示される場合は?
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 をインストールすると依存パッケージが不足すると表示される場合は?
手順:
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日
Docker 実践ガイド
検索からこのページに来た場合は、前後の記事もあわせて読むと同じテーマの理解がかなり早く深まります。
前の記事
Docker vs 仮想マシン:5分で理解する性能差とシーン別選び方ガイド
Docker と仮想マシン、どちらを選べばいいか迷っていませんか?両者の本質的な違いをわかりやすく解説し、性能データの比較とシーン別の判断ツリーを用意。5分で正しい選択ができます。
第 2 / 37 記事
次の記事
Docker Compose 本番デプロイ:ヘルスチェック、再起動ポリシー、ログ管理
Docker Compose 本番環境の実践ガイド:ヘルスチェック設定、再起動ポリシーの詳細解説、ログ管理の完全なソリューション。コンテナのフェイルオーバーから自動復旧まで、ログによるディスク容量圧迫を防ぐ実用的な設定を紹介します。
第 4 / 37 記事
関連記事
Dockerfile入門:ゼロから最初の Docker イメージを作る(実例付き)
Dockerfile入門:ゼロから最初の Docker イメージを作る(実例付き)
Docker マルチステージビルド実践:本番イメージを 1GB から 10MB へ
Docker マルチステージビルド実践:本番イメージを 1GB から 10MB へ
Docker Compose 複数サービス連携:ローカル開発環境をワンコマンドで起動
コメント
GitHubアカウントでログインしてコメントできます