docker容器中的cli工具很慢

时间:2017-11-17 20:19:11

标签: performance docker

使用docker作为cli工具时,我期望性能明智吗? 好像当我尝试在docker中运行这个工具时 - 它要慢得多。我做错了吗?

所以我有一个带有这个内容的test.html文件:

<html><!--sdfsf--></html>

安装在我的盒子上 - 非常快:

$ time html-minifier --remove-comments <test.html
<html></html>
real    0m0.098s
user    0m0.088s
sys 0m0.013s

在docker中运行 - &gt;需要更长的时间:

time docker run -i chuyskywalker/node-html-minifier html-minifier --remove-comments <test.html
<html></html>

real    0m1.061s
user    0m0.019s
sys 0m0.012s
编辑:我的机器是Fedora Linux 25. Docker是从docker官方存储库安装的。

1 个答案:

答案 0 :(得分:1)

这里有几点需要注意:

  1. macOS或Windows上的Docker实际上是在虚拟机中运行。这个虚拟机会带来一些开销,也可能受限于它可以访问的实际CPU和内存的数量。
  2. Docker容器确实有启动时间(可以是1秒或更长)。
  3. 如果要将数据中的卷或管道装入标准输入,则它可能会慢,因为它必须通过Docker客户端传输到Docker主机。
  4. 您没有提到Docker的安装方式或主机平台。但如果您使用的是Windows或MacOS,那么#1和#3肯定会占用一些时间。

    您可以做的一件事是将time命令移到容器内(如果图像中有实用程序),以更接近地表示实际处理时间:

    docker run -i chuyskywalker/node-html-minifier time html-minifier --remove-comments <test.html