第一种方法:time
time docker run --rm --name=test alpine ping -c 10 8.8.8.8
...
real 0m10.261s
user 0m0.228s
sys 0m0.044s
但这也将包括创建和移除容器的时间。
方法二:容器信息
您要查找的信息由 docker 存储,可通过docker container inspect 访问。
docker run --name=test alpine ping -c 10 8.8.8.8
* 请注意,我没有使用--rm,因为下一步是检查容器。之后您必须将其删除。您可能感兴趣的时间戳是:
"Created": "2018-08-02T10:16:48.59705963Z",
"StartedAt": "2018-08-02T10:16:49.187187456Z",
"FinishedAt": "2018-08-02T10:16:58.27795818Z"
$ docker container inspect test
[
{
"Id": "96e469fdb437814817ee2e9ad2fcdbf468a88694fcc998339edd424f9689f71f",
"Created": "2018-08-02T10:16:48.59705963Z",
"Path": "ping",
"Args": [
"-c",
"10",
"8.8.8.8"
],
"State": {
"Status": "exited",
"Running": false,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 0,
"Error": "",
"StartedAt": "2018-08-02T10:16:49.187187456Z",
"FinishedAt": "2018-08-02T10:16:58.27795818Z"
}
...
持续时间计算示例(使用 bash):
您可以使用这样的单个命令将这些时间戳放入 bash 变量中:
START=$(docker inspect --format='{{.State.StartedAt}}' test)
STOP=$(docker inspect --format='{{.State.FinishedAt}}' test)
然后您可以将它们转换为 UNIX 纪元时间戳(自 1970 年 1 月 1 日以来的秒。(UTC))
START_TIMESTAMP=$(date --date=$START +%s)
STOP_TIMESTAMP=$(date --date=$STOP +%s)
如果你减去这两个,你会得到以秒为单位的持续时间......
echo $(($STOP_TIMESTAMP-$START_TIMESTAMP)) seconds
9 seconds