我想编写一个 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 准备就绪?我怀疑解决方案可能是等待管道文件或类似文件,而不是服务。