Dockerが起動しない時の対処法【Windows・Mac・Linux別】

Docker

「Dockerが起動しない」「Docker Desktop startingのまま進まない」「daemonに接続できない」——こうしたエラーに突然遭遇して困った経験はないでしょうか。
この記事では、OS別・状況別に原因と対処法を順番に解説します。
再インストールを試みる前に、まず確認すべきことがあります。落ち着いて一つずつ試してみてください。


スポンサーリンク

Dockerが起動しない原因の分類

「起動しない」には、大きく3つのパターンがあります。
自分の状況がどれに当てはまるか確認してから対処法へ進みましょう。

パターン主な症状
Docker Desktop自体が起動しない「Docker Desktop starting…」から進まない、アイコンをクリックしても反応なし
Docker daemonに接続できないCannot connect to the Docker daemonエラーが出る
コンテナが起動しないdocker rundocker startでエラーが出る

【共通】まず試す基本の対処法

OSを問わず、最初に試すべき対処法です。

手順1:PCを再起動する

もっとも基本的な対処法です。
前回の終了時にDockerのプロセスが正常に終了しないままバックグラウンドに残り、新規起動を阻害しているケースが最も多くなっています。
一度PCを完全に再起動してから、改めてDockerを起動し直してみてください。

手順2:Dockerのプロセスを強制終了してから再起動する

PCを再起動しても解決しない場合は、Dockerに関連するプロセスを手動で強制終了してから再起動します。

Windowsの場合(タスクマネージャー):

  1. Ctrl + Shift + Escでタスクマネージャーを開く
  2. 「詳細」タブを開き、Docker Desktop.exedockerd.execom.docker.backend.exeなど「Docker」が含まれるプロセスをすべて右クリックして「タスクの終了」を選ぶ
  3. 全プロセス終了後、Docker Desktopを起動し直す

Macの場合(アクティビティモニタ):

  1. アプリケーションユーティリティアクティビティモニタを開く
  2. 検索欄にdockerと入力する
  3. 表示されたDockerに関連するプロセスをすべて選択して×ボタンで終了する
  4. Docker Desktopを起動し直す

手順3:Docker Desktopをアップデートする

Dockerのバージョンが古い場合、OSとの相性問題で起動しなくなることがあります。
「久しぶりにDockerを起動したら動かなくなった」というケースはバージョンの問題が多いです。
Docker Desktopを開き、メニューから「Check for Updates」でアップデートを確認してください。


【Windows】WSL2関連のトラブル対処法

WindowsでDocker Desktopを使っている場合、WSL2(Windows Subsystem for Linux 2)の不具合が原因で起動できないことがあります。

WSL2のエラーメッセージが出ている場合

起動時に以下のようなメッセージが表示されている場合はWSL2が原因です。

WSL 2 installation is incomplete.

対処手順:

  1. PowerShellを管理者として実行する
  2. 以下のコマンドを順番に実行する
wsl --update
wsl --shutdown
  1. PCを再起動してからDocker Desktopを起動し直す

WSL2のディストリビューションが残っている場合

アンインストール・再インストール後もDockerが起動しない場合、Docker関連のWSL2ディストリビューションが残っている可能性があります。

wsl -l -v

上記コマンドでdocker-desktopdocker-desktop-dataが表示されている場合は削除します。

wsl --unregister docker-desktop
wsl --unregister docker-desktop-data

削除後にDocker Desktopを再インストールしてください。

Hyper-Vが無効になっている場合

Docker DesktopはHyper-Vも利用します。
PowerShellを管理者として実行し、以下のコマンドで有効化してください。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

有効化後にPCを再起動してから再度試してください。

設定ファイル(Roamingフォルダ)の削除

Windowsのアップデート後などに設定ファイルが壊れて起動しなくなるケースがあります。
その場合は以下のフォルダを削除してからDocker Desktopを再起動すると改善することがあります。

C:\Users\[ユーザー名]\AppData\Roaming\Docker

AppDataは隠しフォルダです。エクスプローラーの「隠しファイル」表示を有効にしてから操作してください。


【Mac】macOS関連のトラブル対処法

Docker Desktopのトラブルシュート機能を使う

macOSでDockerが「Engine Starting…」から進まない場合は、Docker Desktopの内蔵トラブルシュート機能を試してください。

  1. メニューバーのDockerアイコンをクリックする
  2. 「Troubleshoot」(虫眼鏡アイコン)を選択する
  3. 「Clean / Purge data」または「Reset to Factory Defaults」を試す

※「Reset to Factory Defaults」を実行するとすべてのコンテナ・イメージ・ボリュームが削除されます。
事前にdocker saveで重要なイメージをバックアップしてください。

macOSアップデート後に起動しなくなった場合

macOSを大型アップデートした後にDockerが起動しなくなることがあります。
2025年1月に、macOS Sequoiaアップデートとの互換性問題が確認されており、Docker公式から修正版(v4.37.2以降)へのアップグレードが案内されました
この問題に当てはまる場合はDocker Desktopを最新バージョンにアップデートしてください。

Macのキャッシュ・設定ファイルを削除する

アップデート後も解決しない場合は、Dockerの残存ファイルを手動で削除してから再インストールします。
ターミナルで以下のコマンドを順番に実行してください。

rm -rf ~/Library/Group\ Containers/group.com.docker
rm -rf ~/Library/Containers/com.docker.*
rm -rf ~/Library/Application\ Support/Docker\ Desktop

削除後にPCを再起動し、Docker公式サイトからDocker Desktopを再インストールしてください。


【Linux】Docker daemonが起動しない場合の対処法

Linuxでは、Docker Desktop ではなくDocker Engine(daemon)を直接使うケースが多くなっています。

daemonの状態を確認する

まずDockerの動作状態を確認します。

sudo systemctl status docker

Active: inactive (dead) または failed と表示されている場合は、daemonが停止しています。

daemonを起動する

以下のコマンドでdaemonを起動します。

sudo systemctl start docker

OS起動時に自動で起動するようにする場合は、あわせて以下も実行してください。

sudo systemctl enable docker

エラーログを確認する

起動コマンドを実行してもエラーになる場合は、ログを確認して原因を特定します。

sudo journalctl -u docker --no-pager | tail -50

ログに表示されたエラーメッセージをもとに対処します。

daemon.jsonの設定が競合している場合

/etc/docker/daemon.jsonに設定を追加している場合、起動オプションと競合してdaemonが起動しないことがあります。
Docker公式ドキュメントでは、daemon.jsonとコマンドライン起動オプションの同一設定の競合がエラーの原因として案内されています。

典型的なエラーメッセージ:

unable to configure the Docker daemon with file /etc/docker/daemon.json:
the following directives are specified both as a flag and in the configuration file: hosts

このエラーが出た場合は、/etc/docker/daemon.jsonを開いて重複しているキー(hostsなど)を削除し、以下を実行してください。

sudo systemctl daemon-reload
sudo systemctl restart docker

パーミッションエラー(permission denied)が出る場合

permission denied while trying to connect to the Docker daemon socket

このエラーが出る場合は、現在のユーザーがdockerグループに追加されていません。

sudo usermod -aG docker $USER

コマンド実行後、一度ログアウトして再ログインすると設定が反映されます。


【コンテナが起動しない場合】主なエラーと対処法

Docker Desktop自体は起動しているが、コンテナが起動しない場合の対処法です。

ポートが競合している場合

failed: port is already allocated

このエラーは指定したポートがすでに別のプロセスで使用されている場合に発生します。

対処法:

  • 同じポートを使っている別のコンテナを停止する:docker stop [コンテナ名]
  • docker-compose.ymlのportsに指定しているホスト側のポート番号を変更する
  • XAMPPなど別のWebサーバーが同じポートを使っていないか確認する

コンテナのログで原因を確認する

コンテナが起動してすぐ停止してしまう場合は、docker logsコマンドでエラー内容を確認してください。

docker logs [コンテナ名またはID]

Docker Desktopを初期化する(最終手段)

上記の対処法をすべて試しても解決しない場合は、Docker Desktopを初期化します。

初期化手順:

  1. Docker Desktopを開く
  2. 右上のバグアイコン(Troubleshoot)をクリックする
  3. 「Reset to Factory Defaults」をクリックする

⚠️ 初期化するとすべてのイメージ・コンテナ・ボリュームが削除されます。
実行前に必ず以下でイメージをバックアップしてください。

docker save [イメージ名] -o backup.tar

まとめ

Dockerが起動しない原因は、残存プロセスの干渉・WSL2の不具合(Windows)・macOSアップデートとの非互換・daemon.jsonの設定競合・パーミッションエラーなど多岐にわたります。

試す順番をまとめると、PCの再起動→Dockerプロセスの強制終了→アップデート確認→OS別の固有対処(WSL2更新・設定ファイル削除など)→Docker Desktopの初期化(最終手段)という流れです。

Dockerの基本的な使い方については、Dockerコマンド一覧Dockerのイメージとコンテナの違いもあわせてご覧ください。


参考情報源

コメント

タイトルとURLをコピーしました