mat*_*sbe 4 time docker docker-container
我有一个名为docker的镜像my_image,它启动命令并关闭。
使用命令在容器中运行映像时docker run --rm my_image,是否可以测量容器的执行时间?
编辑:
容器执行后,我需要查看这些计时信息,因此无法使用time命令。
我以某种方式希望找到由docker保留的一些容器执行历史,即使--rm使用过也是如此。但是,如果它不存在,那么@tgogos的答案是合适的。
目的是比较几个图像的执行时间,以得出关于所使用的不同工具的结论。
timetime docker run --rm --name=test alpine ping -c 10 8.8.8.8
...
real 0m10.261s
user 0m0.228s
sys 0m0.044s
Run Code Online (Sandbox Code Playgroud)
但这还包括创建和删除容器的时间。
您要查找的信息由docker存储,可以通过进行访问docker container inspect。
docker run --name=test alpine ping -c 10 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
*请注意,我没有使用过,--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"
}
...
Run Code Online (Sandbox Code Playgroud)
您可以使用以下单个命令将这些时间戳记放入bash变量中:
START=$(docker inspect --format='{{.State.StartedAt}}' test)
STOP=$(docker inspect --format='{{.State.FinishedAt}}' test)
Run Code Online (Sandbox Code Playgroud)
然后,您可以将它们转换为UNIX纪元时间戳(自1970年1月1日以来的秒数。(UTC))
START_TIMESTAMP=$(date --date=$START +%s)
STOP_TIMESTAMP=$(date --date=$STOP +%s)
Run Code Online (Sandbox Code Playgroud)
如果减去这两个,则持续时间以秒为单位...
echo $(($STOP_TIMESTAMP-$START_TIMESTAMP)) seconds
9 seconds
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2512 次 |
| 最近记录: |