Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Docker Desktop on Windows

Dockerのエラー「docker: error during connect: Post “https://XXX.XXX.XX.100:2376/v1.24/containers/create”:~」の解決方法

Docker Desktop on Windowsでのエラー「docker: error during connect: Post "https://XXX.XXX.XX.100:2376/v1.24/containers/create":」の解決方法

VS Codeで拡張機能Remote Developmentを使ってDockerと連携させた開発環境を使っていると、突然Dockerがエラー「docker: error during connect: Post “https://XXX.XXX.XX.100:2376/v1.24/containers/create”:~」を出すようになりました。その解決に苦労したので、今回はそのエラーへの対処方法を備忘録として書いておきます。

自分の環境

  • Windows10 Home 64bit
  • Docker Desktop for Windows
  • 初めてDocker Desktopをインストールしたときには普通に起動し、そのチュートリアルも実行できていた
  • VS Codeで拡張機能Remote Developmentを使い、かつ、compose.ymlとdevcontainer.jsonを使ってコンテナの環境構築を自動化させるべく、それらのファイルを編集しながらテストしていた

Dockerのエラーの内容

Docker Desktop on Windows
サンプルコンテナ起動テスト画面

Docker Desktopを起動して、まずDockerのバージョンを確認するべく

docker -V

これはきちんと動いていました。

しかしその後に「サンプルコンテナを起動させてみよう」という次の画面上にあるコマンドを入力したところ、

docker run -d -p 80:80 docker/getting-started

しばらくしてから次のエラーが出て動きませんでした。

docker: error during connect: Post "https://XXX.XXX.XX.100:2376/v1.24/containers/create": dial tcp /XXX.XXX.XX.100:2376: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
See 'docker run --help'.

次にdockerの状態を確かめようと、

docker ps

としたところ、やはり次のようなエラーが。

error during connect: Get "https://XXX.XXX.XX.100:2376/v1.24/containers/json": dial tcp /XXX.XXX.XX.100:2376: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

タスクマネージャーで起動しているプログラムを見てみます。

DokcerのWindowsでのエラー

解決方法と実行したこと

その1:Docker ToolBoxのアンインストールと環境変数の編集

Docker Desktopと機能がかぶっている(?)Docker ToolBoxは現在ではもはや不要なのでまず削除して、Docker 環境変数からVirtualboxやDocker ToolBoxの環境変数を削除して、PCを再起動。

その後Docker Desktopを起動させ上と同じように「docker run -d -p 80:80 docker/getting-started」とするも、今度は、

docker: error during connect: This error may indicate that the docker daemon is not running.: Post "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/create": open //./pipe/docker_engine: The system cannot find the file specified.
See 'docker run --help'.

というエラーが。今度はエラーの内容が変わりました。

その2:PowerShellで自己診断ツール「diagnose.exe」を実行

実はDockerには最初から自己診断ツールとしてdiagnose.exeが付属しています。次にそれを試してみました。

公式サイトの説明では、

自己診断ツール

Docker Desktop には自己診断ツールが含まれます。 これを使えば、ごく普通の問題を特定できるようになります。 この自己診断ツールを実行するには、まずはcom.docker.diagnose.exeを探し出します。 通常これはC:\Program Files\Docker\Docker\resources\com.docker.diagnose.exeにあります。

自己診断ツールを PowerShell 内において実行します。

と説明されています。これに従い今度はこの自己診断ツールを使ってみました。

PowerShellを立ち上げて、起動直後の画面で、

 C:\Users\○○○○○> & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" check

と入力して実行させると、私の場合は次のような結果になりました。


[2023-03-12T03:24:41.163272900Z][com.docker.diagnose.exe][I] set path configuration to OnHost
Starting diagnostics

[PASS] DD0027: is there available disk space on the host?
[PASS] DD0028: is there available VM disk space?
[PASS] DD0002: does the bootloader have virtualization enabled?
[SKIP] DD0018: does the host support virtualization?
[PASS] DD0001: is the application running?
[PASS] DD0022: is the Virtual Machine Platform Windows Feature enabled?
[PASS] DD0021: is the WSL 2 Windows Feature enabled?
[PASS] DD0024: is WSL installed?
[PASS] DD0025: are WSL distros installed?
[PASS] DD0026: is the WSL LxssManager service running?
[PASS] DD0029: is the WSL 2 Linux filesystem corrupt?
[PASS] DD0035: is the VM time synchronized?
[PASS] DD0017: can a VM be started?
[PASS] DD0016: is the LinuxKit VM running?
[PASS] DD0011: are the LinuxKit services running?
[PASS] DD0004: is the Docker engine running?
[PASS] DD0015: are the binary symlinks installed?
[PASS] DD0031: does the Docker API work?
[PASS] DD0013: is the $PATH ok?
[FAIL] DD0003: is the Docker CLI working? exit status 1
[PASS] DD0005: is the user in the docker-users group?
[PASS] DD0038: is the connection to Docker working?
[PASS] DD0014: are the backend processes running?
[PASS] DD0007: is the backend responding?
[PASS] DD0008: is the native API responding?
[PASS] DD0009: is the vpnkit API responding?
[PASS] DD0010: is the Docker API proxy responding?
[PASS] DD0006: is the Docker Desktop Service responding?
[SKIP] DD0030: is the image access management authorized?
[PASS] DD0033: does the host have Internet access?
[PASS] DD0002: does the bootloader have virtualization enabled?
[PASS] DD0018: does the host support virtualization?
[PASS] DD0001: is the application running?
[PASS] DD0022: is the Virtual Machine Platform Windows Feature enabled?
[PASS] DD0021: is the WSL 2 Windows Feature enabled?
[PASS] DD0024: is WSL installed?
[PASS] DD0025: are WSL distros installed?
[PASS] DD0026: is the WSL LxssManager service running?
[PASS] DD0029: is the WSL 2 Linux filesystem corrupt?
[PASS] DD0035: is the VM time synchronized?
[PASS] DD0017: can a VM be started?
[PASS] DD0016: is the LinuxKit VM running?
[PASS] DD0011: are the LinuxKit services running?
[PASS] DD0004: is the Docker engine running?
[PASS] DD0015: are the binary symlinks installed?
[PASS] DD0031: does the Docker API work?
[PASS] DD0032: do Docker networks overlap with host IPs?

Please investigate the following 1 issue:

1 : The test: is the Docker CLI working?
    Failed with: exit status 1

The Docker CLI is needed to build, share and run applications.

はい、そうですか・・・

なぜいきなりDocker CLI(Dcokerのいろんなプログラムの仲介役?みたいなコマンドラインツール)が消失?または機能不全になったのかさっぱりわかりません。

その3:Docker Desktop for Windowsのアンインストールと再インストール

というわけで、最終手段としてDocker Desktop for Windowsのアンインストールと再インストールを行いました。

このとき、あくまでアンインストールするのはDocker on Windowsだけですので、すでにインストール済みのWSL2は影響を受けません。つまりWSL2の再インストールは不要です。

その後、再インストールしたDocker Desktop for Windowsを立ち上げ、「docker run -d -p 80:80 docker/getting-started」を実行すると、

Docker on Windowsのエラー解決方法
Docker on Windowsのエラー解決方法

このように上手く機能するようになりました。

まぁとりあえず削除して再インストールですね(苦笑)。

愛を分かち合いましょう