在脚本中,我需要检查:
a)Docker 引擎是否正在运行?
b)给定容器名称,该 Docker 容器是否正在运行?
a)Docker 引擎是否正在运行?
b)给定容器名称,该 Docker 容器是否正在运行?
if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" = "true" ]; then ...
Status
字段来改进上述问题:if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" = "running" ]; then ...
systemctl show --property ActiveState docker
docker info
或docker version
连接到Docker,如果守护程序不可用,它们将报错。docker inspect -f '{{.State.Restarting}}' $container_name
命令来启动我的容器,并设置了重启策略,但是这里要避免的是 "true"。 - stav meirsystemctl : The term 'systemctl' is not recognized as the name of a cmdlet, function, script file, or operable program
- Marco Lackovicdocker info
使用Bash脚本检查Docker引擎是否正在运行。
编辑:可以使用以下方式使您的脚本在Docker未运行时失败:
#!/usr/bin/env bash
if ! docker info > /dev/null 2>&1; then
echo "This script uses docker, and it isn't running - please start docker and try again!"
exit 1
fi
docker info > /dev/null 2>&1
用于此。 - buggymcbugfix列出所有容器:
docker container ls -a
ls
= 列表
-a
= 所有
检查"状态"一栏
您可以使用以下命令检查Docker状态:systemctl is-active docker
➜ ~ systemctl is-active docker
active
你可以这样使用它:➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi
is alive :)
➜ ~ sudo systemctl stop docker
➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi
* empty response *
docker ps --filter name=pattern
命令,然后可以使用 --format {{.Status}}
标志格式化输出以仅检查状态。 - Hernan Garciasystemctl
是否认为docker
正在运行,但它实际上不会检查docker是否真的在运行。因此,我认为上面的docker info
命令是更好的选择。 - James Stevens对于OS X用户(Mojave 10.14.3)
这是我在Bash脚本中使用的代码,用于测试Docker是否正在运行
# Check if docker is running
if ! docker info >/dev/null 2>&1; then
echo "Docker does not seem to be running, run it first and retry"
exit 1
fi
有时您不知道完整的容器名称,在这种情况下,以下是适用于我的方法:
if docker ps | grep -q keyword
then
echo "Running!"
else
echo "Not running!"
exit 1
fi
我们列出所有正在运行的容器进程(docker ps -a
会显示我们不需要的未运行的容器),我们搜索特定的单词(grep
部分),如果我们没有找到至少一个包含关键字的正在运行的容器名称,则简单地失败。除了docker -v
命令,任何Docker命令(如docker ps
)都会得到一些有效响应,如果Docker正在运行,则会得到一些有效响应,否则您将收到一个消息,其中包含“你的Docker守护进程是否在运行?”
您还可以检查您的任务管理器。
docker -v
不会检查 Docker 是否正在运行,但 docker version
会!哈哈 - James Stevens容器状态:真/假
# docker inspect --format '{{json .State.Running}}' container-name
true
#
您可以使用以下命令systemctl status docker
来检查docker的状态。 如果要启动,可以使用systemctl start docker
命令。除了systemctl
命令外,您还可以尝试使用service
, service docker status
以及service docker start
。
systemd
作为他们的init系统。 - Rafaelsystemctl status docker
正确显示 Docker 服务是否正在运行。谢谢。 - Mr. Unnormalized Posteriordocker ps -a
该命令可查看所有Docker容器的状态,无论其是否正在运行。
docker ps
命令。 - Mattia Dinosaur