uptime 命令在 docker 镜像中给出奇怪的结果

cfi*_*her 10 uptime docker

如果我运行 docker 镜像并调用uptime,我总是得到比真实值更长的值。

docker run -it 1d2dfb3a35ab
root@7efb3e947f73:/# uptime
 23:41:57 up 16 min,  0 users,  load average: 0.06, 0.02, 0.00
Run Code Online (Sandbox Code Playgroud)

它没有运行 16 分钟,甚至没有 16 秒。=:-O

这是一个已知问题还是什么?

小智 19

第一个进程启动时间可以用作容器启动时间:

stat /proc/1/cmdline
Run Code Online (Sandbox Code Playgroud)

/proc/1/cmdline是procfs中的一个虚拟文件,其创建日期与容器创建日期相同。stat 命令显示其文件系统级属性,以及它们之间的创建日期。

  • 好主意!当我将 `docker exec` 放入容器 `stat /proc/1/cmdline` 时,不会给我容器启动的时间,而是我运行 `docker exec` 的时间。但是做 `stat /proc/1/` 似乎给了容器启动时间。 (4认同)
  • 很好的解决方案,我很理解它,但有人没有。也许1-2解释句子可以改善很多。 (3认同)

Mic*_*ton 12

显示的正常运行时间是主机的正常运行时间。内核不会以这种方式跟踪单个容器的正常运行时间(尽管 Docker 可以)。