🐳
Docker Desktop for Windows トラブルシューティング
はじめに
この記事は、過去100人以上の研修生にDocker Desktopをインストールしてもらった際の
実際のトラブルと対処方法をまとめたものです。
インストール
別記事でまとめています。
インストールのトラブル
Docker Desktopインストールでのトラブル内容と対処方法です。
共通
インストールのトラブルは、以下で解決することが多いので、まずは試してみましょう。
- WSL2アップデート (Windows11 Homeの場合)
- Docker Desktop再インストール
- PC再起動
WSL2アップデート
- コマンドプロンプトを「管理者として実行」で開く
- 「
wsl --update
」、「wsl --shutdown
」をコマンドプロンプトで実行する
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の場合)
- 「
wsl -l -v
」コマンドでDocker関連のディストリビューションが残っていないか確認する(docker-desktop-data
、docker-desktop
)。- 残っていた場合、削除する。
- 「
wsl --unregister docker-desktop-data
」 - 「
wsl --unregister docker-desktop
」
- 「
- 残っていた場合、削除する。
- 参考
- 「
- Docker Desktopインストール
- PC再起動
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
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」の「仮想化」が「有効」になっていることを確認
- タスクマネージャーを開き、「パフォーマンス」→「CPU」の「仮想化」が「有効」になっていることを確認
- BIOS仮想化有効設定
- BIOS設定についてはパソコンによって表示や設定方法が変わってしまうため
「bios 仮想化 有効 {型番・メーカー名}
」で検索すると良いでしょう。
- BIOS設定についてはパソコンによって表示や設定方法が変わってしまうため
- BIOS設定はWindows上では行わないため、ブラウザを見ながら出来ないので
スマートフォンなどの別な端末で確認しながら操作しましょう。
以下、BIOS設定の手順の参考ページです。
対処方法: WSL有効化
- WSLを有効化する
- 「Windows の機能の有効化または無効化」を開く
- 「Linux用Windowsサブシステム」にチェックを入れ「OK」ボタンをクリック
- 「Windows の機能の有効化または無効化」を開く
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
」グループに所属させることで解決します。
コンテナ起動のトラブル
unknown docker command
」
docker-compose で「対処方法
対処方法
コマンドに誤りがある場合に表示されます。
スペルミスや、必要な半角スペースがない事が考えられます。
command not found
」
docker-compose で「対処方法
対処方法
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', 'アクセスが拒否されました。')
」
docker-compose で「対処方法
対処方法
- 対処方法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の場合はデフォルトではローカルホストしか使えないので注意)。- 指定方法
{HOST Port}:{CONTAINER Port}
{HOST IP}:{HOST Port}:{CONTAINER Port}
- 参考
- Compose file version 3 reference
- MacのApacheで127.0.0.1以外のIPアドレスを使用する
- 指定方法
以下のコマンドをコマンドプロンプトやターミナルで実行すると
現在使用中のIP・ポートを確認できます。
netstat -a
error during connect: this error may indicate that the docker daemon is not running
〜 open //./pipe/docker_engine: Access is denied.
」
docker-compose で「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等)」アプリを「管理者として実行」で開き、コマンドを実行する。
error during connect: this error may indicate that the docker daemon is not running
」
docker-compose で「日本語訳
error during connect: this error may indicate that the docker daemon is not running
このエラーは、ドッカーデーモンが実行されていないことを示している可能性があります。
Docker Desktopアプリが立ち上がっていない可能性があるので
まずはアプリが起動しているか確認しましょう。
対処方法
その他のトラブル
公式ページをチェック
最新にアップデートしたり、逆に古いバージョンをインストールすることで解決するケースもあります。
トラブルは問題(Issue)として、公式GitHubに投稿される事もありますので参考までに
古いバージョンをインストールする場合、リリースノートから可能です。
AIに聞く
プロンプト例
Docker DesktopをWindowsにインストールしたところ
以下のメッセージが表示されました。
原因と対処方法を簡単に教えてください。
Docker Desktop - Access denied
You are not allowed to use Docker
You must be in the "docker-users"
group
Discussion