gpt4 book ai didi

docker - 测量docker容器的执行时间

转载 作者:行者123 更新时间:2023-12-03 01:22:22 26 4
gpt4 key购买 nike

我有一个名为 my_image 的 docker 镜像,它启动命令并关闭。

当使用命令docker run --rm my_image在容器中运行镜像时,是否可以测量容器的执行时间?

编辑:

我需要在容器执行后查看这些计时信息,因此我无法使用 time 命令。

我以某种方式希望找到 docker 保存的一些容器执行历史记录,即使使用 --rm 也是如此。但如果它不存在,那么 @tgogos 的答案是合适的。

目标是比较多个图像的执行时间,以得出有关所使用的不同工具的结论。

最佳答案

第一种方法:时间

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容器检查访问。

docker run --name=test alpine ping -c 10 8.8.8.8

* 请注意,我没有使用 --rm 因为下一步是检查容器。之后您必须将其删除。您可能感兴趣的时间戳是:

  • “已创建”:“2018-08-02T10:16:48.59705963Z”,
  • "开始时间": "2018-08-02T10:16:49.187187456Z",
  • "完成时间": "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

关于docker - 测量docker容器的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51650405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com