bash - 如何检查 docker daemon 是否正在运行?

标签 bash shell docker

我正在尝试创建一个 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/

相关文章:

docker - 如何在make文件中替换 “%”中的字符串

bash - 编写脚本以关闭 screen session

shell - 如何在导入 CSV 文件时向 Solr 添加额外字段?

linux - 从 shell 脚本中的 RTF 文件中提取信息

windows - 计划在 Windows 中运行 bash shell 脚本

docker - Docker 镜像中不包含 wwwroot 中的静态文件

postgresql - Dockerfile ENV变量不被接受

ruby - 如何使用 crontab 执行脚本

python - 从python在windows上找到bash可执行文件的位置

macos - Mac OSX Unix Bash 脚本将文件夹中的所有文件整理到一个文本文件中,最好在文件顶部有一个标签