如何检查 docker 引擎和 docker 容器是否正在运行?

新手上路,请多包涵

在脚本中,我需要检查:

a) docker 引擎是否正在运行?

b) 给定一个容器名称,该 docker 容器是否正在运行?

[这个问题的最初措辞模棱两可,有些人将其解释为“检查 docker 引擎”,而其他人将其解释为“检查 docker 容器”]

原文由 user5517392 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 663
1 个回答

如果你正在寻找一个特定的容器,你可以运行:

 if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...

为避免容器处于崩溃循环并不断重新启动以显示它已启动的问题,可以通过检查 Status 字段来改进上述内容:

 if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...

如果你想知道 dockerd 是否在本地机器上运行并且你已经安装了 systemd,你可以运行:

 systemctl show --property ActiveState docker

您还可以使用 docker infodocker version 连接到 docker,如果守护程序不可用,它们将出错。

原文由 BMitch 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题