我正在尝试创建一个 bash 实用程序脚本来检查 docker 守护程序是否在我的服务器中运行。 除了运行这样的代码之外,还有更好的方法来检查 docker 守护进程是否在我的服务器中运行?
ps -ef | grep docker
root 1250 1 0 13:28 ? 00:00:04 /usr/bin/dockerd --selinux-enabled
root 1598 1250 0 13:28 ? 00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc
root 10997 10916 0 19:47 pts/0 00:00:00 grep --color=auto docker
我想创建一个 bash shell 脚本来检查我的 docker 守护进程是否正在运行。如果它正在运行,则什么也不做,如果没有,则启动 docker 守护进程。
我的伪代码是这样的。我正在考虑解析我的 ps -ef 的输出,但我只是想知道是否有更有效的方法来处理我的伪代码。
if(docker is not running)
run docker
end
附: 我不是 linux 专家,我只需要在自己的环境中执行此实用程序。
最佳答案
我编写了一个小脚本 (Mac Osx),通过检查 docker stats
的退出代码来确保 Docker 正在运行。
#!/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
done
fi
#Start the Container..
关于bash - 如何检查 docker daemon 是否正在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43978837/