我是Docker的新手。我正在为docker写一个简单的脚本。我需要检查docker是否正在运行。有命令检查容器名称吗
Answers:
如果要查找特定的容器,可以运行:
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 info
或连接到docker,docker version
如果守护程序不可用,它们将出错。
docker inspect …
的if
语句?
if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
docker inspect -f '{{.State.Restarting}}' $container_name
自启动容器以来的重启策略,尽管这里您要避免使用“ true”。
if
当容器未运行时,bash和docker都将抱怨上述声明。这为虚假情况掩盖了不必要的喷涌: if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
我最终使用
docker info
使用bash脚本检查docker引擎是否正在运行。
docker info > /dev/null 2>&1
如果您不需要输出
您可以使用以下命令检查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}}
对于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 [[ $? -ne 0 ]]
反模式。
有时您不知道完整的容器名称,在这种情况下,这对我有用:
if docker ps | grep -q keyword
then
echo "Running!"
else
echo "Not running!"
exit 1
fi
我们列出所有正在运行的容器进程(docker ps -a
也会向我们显示未运行的容器进程,但这不是我所需要的),我们搜索一个特定的单词(grep
一部分),如果我们没有找到至少一个名称包含我们的正在运行的容器,则会失败关键词。
您可以使用此命令进行检查,systemctl status docker
它将显示泊坞窗的状态。如果你想创业,你可以使用systemctl start docker
,而不是systemctl
你还可以与尝试service
,service docker status
并service docker start
分别。
systemd
其用作其init。
systemctl status docker
正确显示docker服务正在运行。谢谢。
跑:
docker version
如果docker 正在运行,您将看到:
Client: Docker Engine - Community
Version: ...
[omitted]
Server: Docker Engine - Community
Engine:
Version: ...
[omitted]
如果docker 没有运行,您将看到:
Client: Docker Engine - Community
Version: ...
[omitted]
Error response from daemon: Bad response from Docker engine
如果基本目标是“如何在Docker启动时启动容器?”
我们可以使用Docker的重启策略
要将重新启动策略添加到现有容器,请执行以下操作:
例:
docker update --restart=always <container>
我如何签入SSH.Run:
systemctl
如果响应:无法获得D-Bus连接:不允许操作
它是docker或WSL容器。