docker ps和docker images以相当模糊的方式表示时间,例如“大约一小时前”或“两天前”。我怎样才能知道准确的时间呢?
docker ps
docker images
jhkqcmku1#
使用docker inspect:
docker inspect
docker inspect -f '{{ .Created }}' IMAGE_OR_CONTAINER
3duebb1j2#
问题是在使用docker ps和docker images时如何显示确切的时间。这可以直接通过格式参数来完成,使用CreatedAt
$ docker ps --format 'table {{.ID}}\t{{.Command}}\t{{.CreatedAt}}' CONTAINER ID COMMAND CREATED AT 86baa3a5058a "./env.sh catalina.s…" 2019-10-30 08:30:15 -0400 EDT 1eb21e95119d "./env.sh catalina.s…" 2019-10-30 06:58:34 -0400 EDT 87be4be4c328 "docker-entrypoint.s…" 2019-10-30 06:58:33 -0400 EDT e4ab699631c8 "./env.sh catalina.s…" 2019-10-30 06:58:32 -0400 EDT
table规范添加了头文件。法律的格式字段是有文档记录的,例如在https://docs.docker.com/engine/reference/commandline/ps/#formatting,但大多数对应于大写的列标题,因此您可以将{{.Ports}}添加到上述格式。(从引用中,您还可以看到所有字段名称,如docker ps --format='{{json .}}')docker inspect(来自此答案https://stackoverflow.com/a/28203469/500902)可用于显示单个图像或容器的时间,使用不同的格式属性{{.Created}}并显示时间格式略有不同,没有明显的原因。
table
{{.Ports}}
docker ps --format='{{json .}}'
{{.Created}}
ql3eal8s3#
正如其他人所示,docker inspect的转储暴露了Created字段,使用{{.Created}}的过滤器将允许您搜索JSON数组,匹配相应的键,并隔离值输出。针对pihole/pihole容器的示例:
Created
$ docker inspect -f '{{.Created}}' pihole/pihole 2022-09-05T11:32:56.256782646Z
你可以在JSON playground中看到一个例子:https://jqplay.org/s/pbCt0n1Qva6为了进一步使用它,我们可以使用其他工具,例如date将此数据重新格式化为Epoch时间戳:
date
$ date --date "$(docker inspect -f '{{.Created}}' pihole/pihole)" +'%s' 1662377576
从这里,你应该能够应用任何数学或替代显示的日期,适合您的需要。我们可以使用RFC 3339兼容的时间戳,如下所示:
$ date --rfc-3339 seconds --date @"1662377576" 2022-09-05 04:32:56-07:00
由于历元代表秒,除以86400(一天中有多少秒)将给予一些基本的近似值,甚至只是:
86400
$ date -d @1662377576 Mon Sep 5 04:32:56 PDT 2022
3条答案
按热度按时间jhkqcmku1#
使用
docker inspect
:3duebb1j2#
问题是在使用
docker ps
和docker images
时如何显示确切的时间。这可以直接通过格式参数来完成,使用CreatedAttable
规范添加了头文件。法律的格式字段是有文档记录的,例如在https://docs.docker.com/engine/reference/commandline/ps/#formatting,但大多数对应于大写的列标题,因此您可以将{{.Ports}}
添加到上述格式。(从引用中,您还可以看到所有字段名称,如docker ps --format='{{json .}}'
)docker inspect
(来自此答案https://stackoverflow.com/a/28203469/500902)可用于显示单个图像或容器的时间,使用不同的格式属性{{.Created}}
并显示时间格式略有不同,没有明显的原因。ql3eal8s3#
正如其他人所示,
docker inspect
的转储暴露了Created
字段,使用{{.Created}}
的过滤器将允许您搜索JSON数组,匹配相应的键,并隔离值输出。针对pihole/pihole容器的示例:
你可以在JSON playground中看到一个例子:https://jqplay.org/s/pbCt0n1Qva6
为了进一步使用它,我们可以使用其他工具,例如
date
将此数据重新格式化为Epoch时间戳:从这里,你应该能够应用任何数学或替代显示的日期,适合您的需要。我们可以使用RFC 3339兼容的时间戳,如下所示:
由于历元代表秒,除以
86400
(一天中有多少秒)将给予一些基本的近似值,甚至只是: