Python 查找docker守护进程是否正在运行

Python 查找docker守护进程是否正在运行,python,Python,我需要从Python代码中执行,以查看docker`daemon是否独立运行OS 有可能实现吗?否则,也可以读取操作系统并分别为每个平台执行 如果是某个linux系统,我会尝试启动systemctl status docker来检查服务是否正在运行 要使此平台独立,您可以调用某些docker函数,这些函数需要docker守护进程像docker ps那样运行。当守护进程运行时,它应该返回正在运行的进程表,否则它将显示以下消息: 无法连接到位于的Docker守护程序unix:///var/run/d

我需要从Python代码中执行,以查看docker`daemon是否独立运行OS


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

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

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

无法连接到位于的Docker守护程序unix:///var/run/docker.sock. 是 docker守护进程正在运行吗


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

我有一个部分解决方案,其中我检查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)

我需要从Python代码(而不是终端)运行它。我提供了一个只在MacOS(atm)中工作的解决方案。请注意,
systemctl
仅在linux/Yes中有效,但您也可以在python中运行terminal命令。仔细阅读答案的结尾。我没有看到最后一行。。。很抱歉但是您可以使用Python代码提供完整的答案。