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
程序并执行它 - 在这种情况下,它只是退出,因为没有别的事情要做
- 在退出时清理操作