启动 docker 图像所花费的时间在哪里?
Where is the time spent starting a docker image?
我已经 运行 通过 powershell 执行了一些命令,编制了一份(大约)平均时间列表,但我不明白时间花在了哪里。
Measure-Command {docker run}
: ~ 50 毫秒
Measure-Command {node -v}
: ~ 50 毫秒
Measure-Command {docker run node:latest}
:~600 毫秒。
我更希望 docker run node:latest
命令为 100-200 毫秒。
我怀疑额外的时间花在了检查更新的 'latest' 文件上,但我对这个恶魔的了解还不够多,无法确定。
如何获得我期望的 100-200 毫秒加载时间?
docker run
没有进一步的参数打印帮助文本并退出。
node -v
没有进一步的参数打印版本号并退出。
docker run node:latest
必须做很多事情,包括但不限于:
- 将
node:latest
标签解析为图像 ID
- 加载那个图像文件系统层
- 在这种情况下,似乎没有其他层,但在其他情况下,可能会有一连串其他文件系统层要加载并组成最终文件系统视图
- 创建容器
- 为容器的 write/CoW 操作创建 read/write fs 层
- 运行容器
- 在容器中找到
node
程序并执行
- 在这种情况下,它只是退出,因为没有其他事情可做
- 退出时清理操作
我已经 运行 通过 powershell 执行了一些命令,编制了一份(大约)平均时间列表,但我不明白时间花在了哪里。
Measure-Command {docker run}
: ~ 50 毫秒
Measure-Command {node -v}
: ~ 50 毫秒
Measure-Command {docker run node:latest}
:~600 毫秒。
我更希望 docker run node:latest
命令为 100-200 毫秒。
我怀疑额外的时间花在了检查更新的 'latest' 文件上,但我对这个恶魔的了解还不够多,无法确定。
如何获得我期望的 100-200 毫秒加载时间?
docker run
没有进一步的参数打印帮助文本并退出。
node -v
没有进一步的参数打印版本号并退出。
docker run node:latest
必须做很多事情,包括但不限于:
- 将
node:latest
标签解析为图像 ID - 加载那个图像文件系统层
- 在这种情况下,似乎没有其他层,但在其他情况下,可能会有一连串其他文件系统层要加载并组成最终文件系统视图
- 创建容器
- 为容器的 write/CoW 操作创建 read/write fs 层
- 运行容器
- 在容器中找到
node
程序并执行 - 在这种情况下,它只是退出,因为没有其他事情可做
- 退出时清理操作