📜  列出停止的容器 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:22:39.069000             🧑  作者: Mango

列出停止的容器 - Shell-Bash

在 Docker 中,容器启动之后可能会停止。有时候我们需要查看已经停止的容器的信息,以便做出一些决策(如重启、删除等)。

下面是一个 Bash 脚本,用于列出停止的容器及其状态:

#!/bin/bash

# 获取所有容器
CONTAINERS=$(sudo docker ps -a -q)

# 循环遍历所有容器,只输出已停止的容器
for CONTAINER in $CONTAINERS; do
  STATE=$(sudo docker inspect --format "{{.State.Status}}" $CONTAINER)
  if [ "$STATE" == "exited" ]; then
    ID=$(sudo docker inspect --format '{{.Id}}' $CONTAINER)
    IMAGE=$(sudo docker inspect --format '{{.Config.Image}}' $CONTAINER)
    CREATED=$(sudo docker inspect --format '{{.Created}}' $CONTAINER)
    STATUS=$(sudo docker inspect --format '{{.State.Status}}' $CONTAINER)
    echo "Container information:"
    echo " - ID: $ID"
    echo " - Image: $IMAGE"
    echo " - Created: $CREATED"
    echo " - Status: $STATUS"
    echo ""
  fi
done

该脚本通过调用 docker ps -a 命令获取所有容器的信息,然后使用 docker inspect 命令来获取每个容器的详细信息。最后,使用 if 语句来判断容器状态是否为 "exited",如果是,则将容器的 ID、镜像、创建时间和状态打印出来。

输出的格式为 markdown,如:

Container information:
 - ID: 2f8ef8922273
 - Image: mysql:5.7
 - Created: 2022-01-01T00:00:00.000000000Z
 - Status: exited

Container information:
 - ID: 3a1f7f723f55
 - Image: nginx:latest
 - Created: 2022-01-01T00:00:00.000000000Z
 - Status: exited

这样,我们就可以轻松地列出所有已经停止的容器,并对它们进行管理。