Docker运行命令开销

Docker运行命令开销,docker,Docker,我很好奇docker在执行docker运行时所花费的开销(开始运行所花费的时间,假设我已经拉取了docker映像),而不是我只编写一个脚本来安装docker会安装的东西。根据我的经验,docker run似乎总是立即执行,并且随时可以开始,但我可以想象一些更复杂的docker可能会有一些额外的开销?我正在考虑使用像纱线这样的东西,在没有码头工人的情况下,在飞行中提供服务,但我想知道如果没有码头工人,它是否会更快。有什么想法吗 注:我不关心码头工人现在的表现,我很关心时间来提供服务。 码头工人起步

我很好奇docker在执行
docker运行时所花费的开销(开始运行所花费的时间,假设我已经拉取了docker映像),而不是我只编写一个脚本来安装docker会安装的东西。根据我的经验,
docker run
似乎总是立即执行,并且随时可以开始,但我可以想象一些更复杂的docker可能会有一些额外的开销?我正在考虑使用像纱线这样的东西,在没有码头工人的情况下,在飞行中提供服务,但我想知道如果没有码头工人,它是否会更快。有什么想法吗


注:我不关心码头工人现在的表现,我很关心时间来提供服务。

码头工人起步很快,但有一些事情要考虑。 测试开销的最快方法是使用

time
可执行文件并运行以下命令:

docker run --rm -it ubunbu /bin/bash echo test
这给了你这样的东西:

$ time docker run --rm -it ubuntu echo test
test

real    0m0.936s
user    0m0.161s
sys 0m0.008s
从中可以看出,cpu运行该命令只需0.16秒,但实时时间略少于一秒,包括(磁盘I/O,其他进程)


但一般来说,如果使用容器,不要担心性能,它们的主要原因是一致性。

例如,我的docker运行Captvty()需要2到3秒来启动此Windows.exe+wine+各种东西,如果我直接从Linuxdocker
run
启动它,它需要的是几乎是瞬间的命令,是图像本身使它慢了一点,这取决于里面的内容。通常,冷启动容器需要500毫秒到2秒的时间(没有实际的过程进入容器内部)。如果您担心这种边际性能,那么我建议使用一些负载平衡解决方案来缓解notready container state.Ubunbu。我笑了。