查找Docker守护程序是否正在运行

时间:2019-03-27 14:54:59

标签: python

我需要从Python代码执行,以查看docker`守护进程是否独立运行操作系统。

有可能实现吗?否则,也可以阅读操作系统并分别为每个平台执行。

2 个答案:

答案 0 :(得分:1)

如果是某些linux系统,我将尝试启动systemctl status docker来检查服务是否正在运行。

要使该平台独立,您可以调用一些需要像docker ps这样运行的docker守护程序的docker函数。守护程序运行时,它应该返回正在运行的进程表,否则它将显示消息:

  

无法通过unix:///var/run/docker.sock连接到Docker守护程序。是   docker守护程序正在运行?

要启动此命令,请使用子进程库中的Popen。关于运行命令和检索输出,您可以阅读here

答案 1 :(得分:0)

我有一个部分解决方案,我检查docker守护进程是否正在使用bash脚本运行,如果不运行,则python代码将使其运行。

docker.sh

#!/usr/bin/env bash

#!/bin/bash
#Open Docker, only if is not running
if (! docker stats --no-stream ); then
  # On Mac OS this would be the terminal command to launch Docker
  open /Applications/Docker.app
 #Wait until Docker daemon is running and has completed initialisation

while (! docker stats --no-stream ); do
  # Docker takes a few seconds to initialize
  echo "Waiting for Docker to launch..."
  sleep 1

echo "docker daemon is open for the local machine"
done
fi

#Start the Container.

现在从Python代码和OS X中检查守护程序是否正在运行,

# check if the docker daemon is running in os x and if not run it
if(os.name == "posix"):
     subprocess.call("bin/docker.sh", shell=True)