在Windows 10上重启后如何检查Docker是否正在运行

时间:2019-07-15 14:08:35

标签: powershell docker windows-10

我看到了类似的帖子,但它们适用于Linux上的Docker。

我正在使用Windows 10的Docker桌面。

这台运行Docker的Windows 10计算机已设置为自动重启。 Docker启动后还有其他脚本将运行。 Windows和Docker启动过程需要一点时间才能完成。有没有办法监视docker服务和所有需要的容器,直到它们启动并运行?由于Docker尚未准备就绪,因此其余脚本将连续运行而不会发送错误消息。

首选PowerShell。

2 个答案:

答案 0 :(得分:0)

只是一个想法:

  • docker在启动过程中或未启动时:

    PS C:\> docker version
    Client: Docker Engine - Community
    Version:           18.09.2
    API version:       1.39
    Go version:        go1.10.8
    Git commit:        6247962
    Built:             Sun Feb 10 04:12:31 2019
    OS/Arch:           windows/amd64
    Experimental:      false
    Error response from daemon: An invalid argument was supplied.
    PS C:\> echo $?
    False
    
  • 当Docker完成启动并在运行时:

    PS C:\> docker version
    Client: Docker Engine - Community
    Version:           18.09.2
    API version:       1.39
    Go version:        go1.10.8
    Git commit:        6247962
    Built:             Sun Feb 10 04:12:31 2019
    OS/Arch:           windows/amd64
    Experimental:      false
    
    Server: Docker Engine - Community
     Engine:
      Version:          18.09.2
      API version:      1.39 (minimum version 1.12)
      Go version:       go1.10.6
      Git commit:       6247962
      Built:            Sun Feb 10 04:13:06 2019
      OS/Arch:          linux/amd64
      Experimental:     false
    PS C:\> echo $?
    True
    

您可以编写脚本来轮询docker version的状态,以确保Docker准备就绪。

答案 1 :(得分:0)

docker version可能是这样做的一种方法,但是需要解析文本,如果该文本发生更改,则需要在将来的某个日期进行解析,然后还必须维护和更新您的脚本。

另一种方法是只使用Get-Process监视进程。当Docker不运行时,您将/应该仅看到com.docker.service正在运行。 Docker for Windows完全启动后,您将看到其他3-4个其他进程。 com.docker.proxy服务是Docker完全运行后特别容易出现的一种服务。

因此,一旦此命令返回进程,您将知道Docker for Windows已启动并正在运行:

Get-Process 'com.docker.proxy'