如何通过 PowerShell 脚本判断 Docker Desktop 何时启动?

如何通过 PowerShell 脚本判断 Docker Desktop 何时启动?

我想编写一个 PowerShell 脚本,在机器启动时创建多个正在运行的 Docker 容器。我遇到的问题是,尽管服务com.docker.service正在运行,但 Docker Desktop(我假设是 WSL2)的后端仍在准备中。

docker version我可以在系统启动时通过运行或类似命令手动重现此行为。它将显示:

error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open //./pipe/docker_engine: The system cannot find the file specified.

然而几分钟后(后端启动后)该命令将开始工作:

Client:
 Cloud integration: v1.0.22
 Version:           20.10.11
 API version:       1.41
 Go version:        go1.16.10
 Git commit:        dea9396
 Built:             Thu Nov 18 00:42:51 2021
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

在尝试启动容器之前,如何可靠地等待 Docker Desktop 准备就绪?我怀疑解决方案可能是等待管道文件或类似文件,而不是服务。

相关内容