共通する問題の回避策

再起動

PC を再起動し、以前にインストールしたバージョンで動いているデーモンの残骸を、停止・削除します。

DOCKER_HOST のリセット(unset)

DOCKER_HOST 環境変数の設定は不要です。 bash を使用する場合は、リセットのために unset ${!DOCKER_*} コマンドを使います。他のシェルの場合は、シェルのドキュメントをご確認ください。

ウェブサーバの例で Docker が動作しているのを確認

hello-world-nginx サンプルなどを使い、 Docker Desktop で https://localhost 上にウェブサーバを起動します。メニューバー上に Docker 鯨(のアイコン)があるのを確認し、シェル上の Docker コマンドが Docker Desktop エンジンに接続しているのを確認します(Toolbox のエンジンではありません)。そうしなければ、ウェブサーバ・コンテナは実行できるかもしれませんが、 docker は "web page not available"(ウェブページが表示できません)というエラーを返すでしょう。

port already allocated (ポートが既に割り当てられています) エラーを解決するには

Bind for 0.0.0.0:8080 failed: port is already allocatedlisten tcp:0.0.0.0:8080: bind: address is already in use ... のようなエラーが出ることがあるでしょう。

これらのエラーは、Windows 上の他のソフトウェアが各ポートを使っている場合によく発生します。どのソフトウェアが使っているかを見つけるか、 resmon.exe の GUI を使い "Network" と "listening Ports" をクリックするか、 Powershell 上では netstat -aon | find /i "listening " を使って、対象ポートを現在使っているプロセスの PID を見つけます(PID の値は行の右端です)。他のプロセスの停止を決めるか、あるいは、docker アプリで別のポートを使うかを決めます。

アンチウィルス ソフトウェアをインストールしていると、Docker Desktop の起動に失敗

いくつかのアンチウィルス ソフトウェアは、Hyper-V と Microsoft Windows 10 ビルドによっては互換性がない場合があります。典型的に発生するのは Windows update 直後で、Docker デーモンからエラーの反応が表示され、Docker Desktop の起動に失敗します。

一時的な回避策としては、アンチウィルス ソフトウェアをアンインストールするか、Docker Desktop フォーラム上での他の回避策をお探しください。

参考

Workarounds for common problems

https://docs.docker.com/desktop/troubleshoot/workarounds/