📅  最后修改于: 2023-12-03 15:22:39.069000             🧑  作者: Mango
在 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
这样,我们就可以轻松地列出所有已经停止的容器,并对它们进行管理。