Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
VS Codeで拡張機能Remote Developmentを使ってDockerと連携させた開発環境を使っていると、突然Dockerがエラー「docker: error during connect: Post “https://XXX.XXX.XX.100:2376/v1.24/containers/create”:~」を出すようになりました。その解決に苦労したので、今回はそのエラーへの対処方法を備忘録として書いておきます。
Contents
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.
タスクマネージャーで起動しているプログラムを見てみます。
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'.
というエラーが。今度はエラーの内容が変わりました。
実は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のいろんなプログラムの仲介役?みたいなコマンドラインツール)が消失?または機能不全になったのかさっぱりわかりません。
というわけで、最終手段としてDocker Desktop for Windowsのアンインストールと再インストールを行いました。
このとき、あくまでアンインストールするのはDocker on Windowsだけですので、すでにインストール済みのWSL2は影響を受けません。つまりWSL2の再インストールは不要です。
その後、再インストールしたDocker Desktop for Windowsを立ち上げ、「docker run -d -p 80:80 docker/getting-started」を実行すると、
このように上手く機能するようになりました。
まぁとりあえず削除して再インストールですね(苦笑)。
世界最大の動画学習サイトUdemyのおすすめDocker講座【PR】