Shell脚本检测容器是否运行

使用 Shell 脚本来检测容器是否运行

#!/bin/sh
NAME="Nginx"	# 容器名称
if [[ -n $(docker ps -q -f "name=${NAME}") ]];then
        echo "Nginx is running"
else
        echo "Nginx is down!"
fi

-n:检测字符串长度是否不为 0,不为 0 返回 true
-q:仅列出CONTAINER ID 字段
-f:使用过滤器

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以为您提供一个示例脚本,它可以用Go语言检测Docker服务的运行状态: package main import ( "context" "fmt" "time" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { ctx := context.Background() cli, err := client.NewClientWithOpts(client.FromEnv) if err != nil { panic(err) } for { containers, err := cli.ContainerList(ctx, types.ContainerListOptions{}) if err != nil { panic(err) } if len(containers) == 0 { fmt.Println("Docker service is not running") } else { fmt.Println("Docker service is running") } time.Sleep(time.Second * 5) } } ### 回答2: 使用Go语言编写一个简单的脚本来监测Docker服务的步骤如下: 首先,需要导入`os/exec`和`fmt`等库以便于执行命令和格式化输出。 ```go package main import ( "fmt" "os/exec" "strings" "time" ) ``` 接下来,我们定义一个`watchDockerService`的函数来监测Docker服务。这个函数将循环执行命令`docker ps`,检查Docker容器运行状态。如果容器状态为`running`,则表示Docker服务正常;否则,表示Docker服务出现问题。 ```go func watchDockerService() { for { cmd := exec.Command("docker", "ps") output, err := cmd.Output() if err != nil { fmt.Println("执行docker ps命令失败:", err) return } containers := strings.Split(string(output), "\n") // 最后一行是空行,忽略 if len(containers) > 1 { containerStatus := strings.Fields(containers[1]) if containerStatus[3] == "running" { fmt.Println("Docker服务正常运行中") } else { fmt.Println("Docker服务异常") } } time.Sleep(5 * time.Second) } } ``` 最后,在`main`函数中调用`watchDockerService`函数来启动监测过程。 ```go func main() { watchDockerService() } ``` 通过以上的步骤,我们就可以使用Go语言编写一个简单的脚本来监测Docker服务的运行状态。运行脚本后,它将循环执行`docker ps`命令,检查Docker容器的状态,并将结果输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值