如何在主机上跟踪容器

时间:2019-07-15 06:29:17

标签: linux docker

如果我想知道给定容器在给定主机上运行了多长时间。有没有办法解决这个问题,或者有什么工具可以衡量这个指标?

2 个答案:

答案 0 :(得分:2)

请参阅下一步:

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
302f9a721dff        ubuntu:16.04        "/bin/bash"         7 seconds ago       Up 5 seconds                            nervous_lovelace

CREATED:表示创建容器的时间

STATUS:表示容器自上次启动以来已经运行了多长时间

答案 1 :(得分:2)

docker inspect可以返回有关容器状态的信息。

docker inspect  --format='{{json .State}}' container_id

获取启动容器并最终退出容器的确切时间

docker inspect  --format='Started: {{.State.StartedAt}} - Finished: {{.State.FinishedAt}}' container_id

将各个部分放在一起,将在hours:minutes:seconds中打印运行或停止的容器的正常运行时间

#!/usr/bin/env bash

running=`docker inspect  --format='{{.State.Running}}' ${1}`

if [ "${running}" == "true" ]; then
    end=$(date -d 'now' +%s)
else 
    finishedAt=`docker inspect --format='{{.State.FinishedAt}}' ${1}`
    end=$(date -d "${finishedAt}" +%s)
fi

startedAt=`docker inspect --format='{{.State.StartedAt}}' ${1}`
start=$(date -d "${startedAt}" +%s)
secs=$(( (end - start) ))

printf 'Uptime: %dh:%dm:%ds\n' $(($secs/3600)) $(($secs%3600/60)) $(($secs%60))

使用容器ID运行。