我需要从Python代码执行,以查看docker`守护进程是否独立运行操作系统。
有可能实现吗?否则,也可以阅读操作系统并分别为每个平台执行。
答案 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)