🐳

Docker Desktop for Windows トラブルシューティング

2023/07/28に公開

はじめに

この記事は、過去100人以上の研修生にDocker Desktopをインストールしてもらった際の
実際のトラブルと対処方法をまとめたものです。

インストール

別記事でまとめています。

https://zenn.dev/seiya0/articles/tech-docker-desktop-for-win-install

インストールのトラブル

Docker Desktopインストールでのトラブル内容と対処方法です。

共通

インストールのトラブルは、以下で解決することが多いので、まずは試してみましょう。

  • WSL2アップデート (Windows11 Homeの場合)
  • Docker Desktop再インストール
  • PC再起動

WSL2アップデート

  • コマンドプロンプトを「管理者として実行」で開く
    cmd
  • wsl --update」、「wsl --shutdown」をコマンドプロンプトで実行する
    cmd

Docker Desktop再インストール

一時データが影響する可能性があるので、削除も行います。

  • Docker Desktopアンインストール
  • 一時データ削除(AppDataやProgramDataは、隠しフォルダになっているため、表示設定を行う)
    • 隠しフォルダ表示
      • エクスプローラーの「表示」 → 「表示」 → 「隠しファイル」
    • 削除対象
      • C:\Users\<USER>\AppData\Roaming\Docker
      • C:\Users\<USER>\AppData\Roaming\DockerDesktop
      • C:\ProgramData\Docker
      • C:\ProgramData\DockerDesktop
  • WSL2 (Windows11 Homeの場合)
  • Docker Desktopインストール
  • PC再起動

WSL 2 installation is incomplete

WSL 2 Installation is incomplete

日本語訳
WSL 2 installation is incomplete.

The WSL 2 Linux kernel is now installed using a separate MSI update package.
Please click the link and follow the instructions to install the kernel update: https://aka.ms/wsl2kernel.

Press Restart after installing the Linux kernel.
日本語訳
WSL 2 のインストールが不完全です。

WSL 2 Linuxカーネルは、現在、別のMSIアップデートパッケージを使用してインストールされます。
リンクをクリックし、指示に従ってカーネルアップデートをインストールしてください: https://aka.ms/wsl2kernel。

Linux カーネルをインストールした後、Restart を押してください。

対処方法

WSL2アップデート を行う。

An unexpected error occurred (BIOS)

An unexpected error occurred

日本語訳
An unexpected error occurred

Hardware assisted virtualization and data execution protection must be
enabled in the BIOS. See https://docs.docker.com/desktop/windows/troubleshoot/#virtualization
日本語訳
予期せぬエラーが発生

ハードウェアによる仮想化支援とデータ実行保護が
BIOSで有効になっている必要があります。https://docs.docker.com/desktop/windows/troubleshoot/#virtualization を参照してください。

対処方法

対処方法: BIOS設定
  • 仮想化有効の確認
    • タスクマネージャーを開き、「パフォーマンス」→「CPU」の「仮想化」が「有効」になっていることを確認
      windows11-task-manager-virtualization
  • BIOS仮想化有効設定
    • BIOS設定についてはパソコンによって表示や設定方法が変わってしまうため
      bios 仮想化 有効 {型番・メーカー名}」で検索すると良いでしょう。
  • BIOS設定はWindows上では行わないため、ブラウザを見ながら出来ないので
    スマートフォンなどの別な端末で確認しながら操作しましょう。

以下、BIOS設定の手順の参考ページです。

https://support.lenovo.com/jp/ja/solutions/ht500006-how-to-enable-virtualization-technology-on-lenovo-computers
https://www2.mouse-jp.co.jp/ssl/user_support2/sc_faq_documents.asp?FaqID=28709

対処方法: WSL有効化
  • WSLを有効化する
    • 「Windows の機能の有効化または無効化」を開く
      windows11-features
    • 「Linux用Windowsサブシステム」にチェックを入れ「OK」ボタンをクリック
      windows11-features-wsl-on

Access denied

Docker Desktop - Access denied

日本語訳
Docker Desktop - Access denied

You are not allowed to use Docker
You must be in the "docker-users"
group
日本語訳
Docker Desktop - アクセス拒否

Dockerの使用は許可されていません
"docker-users "グループに属している必要があります。

対処方法

対処方法

他のユーザーでインストールしてしまった等で発生することがあります。
docker-users」グループに所属させることで解決します。

https://qiita.com/toro_ponz/items/d75706a3039f00ba1205
https://support.microsoft.com/ja-jp/windows/windows-でローカルのユーザー-アカウントまたは管理者アカウントを作成する-20de74e0-ac7f-3502-a866-32915af2a34d

https://learn.microsoft.com/ja-jp/troubleshoot/developer/visualstudio/ide/troubleshooting-docker-errors#docker-users-group

コンテナ起動のトラブル

docker-compose で「unknown docker command

対処方法

対処方法

コマンドに誤りがある場合に表示されます。
スペルミスや、必要な半角スペースがない事が考えられます。

docker-compose で「command not found

対処方法

対処方法

DockerDesktopは正常にインストール出来たが
docker-composeコマンド実行時に「command not found」のメッセージが出る場合
環境変数(Path)の設定に問題があります。

  • 対処方法1: PCを再起動する。
    • 再起動することで環境変数が設定されることがある。
    • 解決しなければ対処方法2へ
  • 対処方法2: 環境変数(Path)に設定
    • docker-composeファイル等が置かれているディレクトリパスを探す。
      • デフォルト: C:\Program Files\Docker\Docker\resources\bin
    • 環境変数にディレクトリパスを設定する。
      • コントロールパネル → システム → システムの詳細設定 → 環境変数
      • システム環境変数の「Path」を選択して編集ボタン押下
      • 新規ボタンでディレクトリパスを追加する。
    • PCを再起動する。

docker-compose で「pywintypes.error: (5, 'CreateFile', 'アクセスが拒否されました。')

対処方法

対処方法
  • 対処方法1: PCを再起動する。
    • Dockerが正常に立ち上がっていなかった場合、再起動で正常になることがある。
    • 解決しなければ対処方法2へ
  • 対処方法2: 「Visual Studio Code」アプリを「管理者として実行」で開いた状態でターミナルでコマンドを実行する。
    • 解決しなければ対処方法3へ
  • 対処方法3: 「Windows PowerShell(または、Git Bash等)」アプリを「管理者として実行」で開き、コマンドを実行する。

failed: port is already allocated

  • docker-compose で 「failed: port is already allocated」が出る

同一のIPアドレス・ポートが既に使われていると発生します。

対処方法

対処方法
  • 確認点
    • XAMPP等が立ち上がっていないか?ホストのIPアドレス・ポートが重複していないか?
    • 他のコンテナで同一のホスト(IPアドレス・ポート)が使われていないか?
  • 対処方法
    • XAMPP等が立ち上がっていたら停止、不要であればアンインストールを行う。
    • 起動対象以外のコンテナの停止 or 削除を行う。
    • 起動対象コンテナのポートを変更する。ymlの場合、「ports」のHOSTのIP、Portを変更する(Macの場合はデフォルトではローカルホストしか使えないので注意)。

以下のコマンドをコマンドプロンプトやターミナルで実行すると
現在使用中のIP・ポートを確認できます。

netstat -a

docker-compose で「error during connect: this error may indicate that the docker daemon is not runningopen //./pipe/docker_engine: Access is denied.

error during connect: this error may indicate that the docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dtraining%22%3Atrue%7D%7D": open //./pipe/docker_engine: Access is denied.

対処方法

対処方法
  • 対処方法1: PCを再起動する。
    • Dockerが正常に立ち上がっていなかった場合、再起動で正常になることがある。
    • 解決しなければ対処方法2へ
  • 対処方法2: 「Visual Studio Code」アプリを「管理者として実行」で開いた状態でターミナルでコマンドを実行する。
    • 解決しなければ対処方法3へ
  • 対処方法3: 「Windows PowerShell(または、Git Bash等)」アプリを「管理者として実行」で開き、コマンドを実行する。

docker-compose で「error during connect: this error may indicate that the docker daemon is not running

日本語訳
error during connect: this error may indicate that the docker daemon is not running
このエラーは、ドッカーデーモンが実行されていないことを示している可能性があります。

Docker Desktopアプリが立ち上がっていない可能性があるので
まずはアプリが起動しているか確認しましょう。

対処方法

WSL2アップデートを行い
Docker Desktop再インストール を行います。

それで解決しなければ、以下に書かれている
Daemonの切り替えやコンフィグ設定変更を試しましょう。

https://github.com/docker/for-win/issues/12548

その他のトラブル

公式ページをチェック

https://docs.docker.jp/docker-for-windows/troubleshoot.html

最新にアップデートしたり、逆に古いバージョンをインストールすることで解決するケースもあります。
トラブルは問題(Issue)として、公式GitHubに投稿される事もありますので参考までに

https://github.com/docker/for-win/issues

古いバージョンをインストールする場合、リリースノートから可能です。

https://docs.docker.com/desktop/release-notes/

AIに聞く

  • AI
    • Bing AI(Edgeでのみ利用可)
    • ChatGPT(最初は「Sign up」でアカウント作成が必要)
プロンプト例
Docker DesktopをWindowsにインストールしたところ
以下のメッセージが表示されました。
原因と対処方法を簡単に教えてください。

Docker Desktop - Access denied

You are not allowed to use Docker
You must be in the "docker-users"
group

Discussion