docker图像开始的时间在哪里?

我已经通过powershell运行了几个命令,编译了一个(大约)平均时间的列表,我不明白在哪里花费的时间。

Measure-Command {docker run}Measure-Command {docker run}毫秒

Measure-Command {node -v} :〜50毫秒

Measure-Command {docker run node:latest} :〜600毫秒。

我会更期待docker run node:latest命令是100-200ms。

我怀疑有额外的时间花在检查更新的“最新”文件上,但我对这个恶魔还不确定。

我如何能得到我期望的100-200毫秒的加载时间?

docker run没有进一步的参数打印帮助文本和退出。

node -v没有更多的参数打印版本号并退出。

docker run node:latest必须做一些事情,包括但不限于:

  • node:latest标记parsing为图像标识
  • 加载该图像文件系统层
    • 在这种情况下,似乎没有其他层,但在其他情况下,可能会有其他文件系统层的链加载并组成最终的文件系统视图
  • 创build一个容器
  • 为容器的写/ CoW操作创build读/写fs层
  • 运行容器
  • find容器中的node程序并执行它
  • 在这种情况下,它只是退出,因为没有别的事情要做
  • 在退出时清理操作