HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

Dockerで"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.: Get "http://%2F%2F.%2Fpipe%2Fdocke
r_engine/_ping": open //./pipe/docker_engine: The system cannot find the file specified.

上記エラーの解決方法です。
Googleで検索して回っていると、いろんな解決方法が存在しておりますが、私の場合はこれで復活できたという記録になります。

さらに私の場合は、Docker for Windows がシステムトレイ(タスクトレイ)にも表示されず、UIが開けなかったため、コマンドラインベースでの解決方法になります。

現象について

前提

Windows 10 Pro で Docker for Windows を使っています。
Linuxが好きなのでCygwinも使ってます。

エラーが起きたときのこと

Docker for Windows がシステムトレイに表示されない状態だったので、再インストールを試してみたのです。
そうすると、docker --versiondocker-compose --versionは動くのですが、docker-compose up -ddocker-compose ps -aを実行するとエラーが表示され、コンテナが立ち上がらなくなってしまいました。

error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocke
r_engine/_ping": open //./pipe/docker_engine: The system cannot find the file specified.

やったけどダメだったこと

何度かDocker for Windows の再インストール、PCの再起動を試しましたが、全然解決せず…。
Google先生に聞いてみることに。

解決方法

管理者モードのPowerShellで下記を実行する。

& $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon .

参考:
Windows オペレーティング システム コンテナーの準備 | Microsoft Docs

これで上記エラーが出なくなりますが…今度は下記エラーが出て、やはりコンテナが立ち上がりません。

no matching manifest for windows/amd64 10.0.19043 in the manifest list entries, Code: 1

そこで今度は、 %AppData%\Docker\last-start-windows-daemon.json を開いて、値を編集します。

{"experimental":false}{"experimental":true}

"experimental"というのは「実験的機能を有効にする」設定であるとのこと。
詳しくは下記を参照です。

Docker for Windows を始めよう — Docker-docs-ja 19.03 ドキュメント

解説…はまだできず…

時間がないので、いったん解決方法の共有ということで…。

  • PowerShellでやっていることの中身
  • なぜ「実験的機能を有効にする」だけで解決するのか

といったことは、いずれ調べようと思います…いずれ…。

終わりに

こちらの記事がどなたかの救いになれば幸いです。
ちなみに Docker for Windows がシステムトレイにいないのは変わらず…。
帰ってこないんだろうか…。

以上でした。