【发布时间】:2020-08-15 17:57:12
【问题描述】:
我已经构建了 docker 容器系统,其中容器包含命令行应用程序。我传递参数并使用来自另一个应用程序的 docker exec 命令运行应用程序。
当我从 docker 内部运行命令行应用程序时,需要 0.003 秒才能运行。
$ time comlineapp "hello"
但是当我使用 docker exec 从外部 docker 运行它时,需要 0.500 秒
$ time docker exec comline app "hello"
很明显 docker exec 需要很多时间。我们需要任何帮助来尽可能减少 docker exec 命令的时间。
这里是 docker 文件
FROM ubuntu:18.04
RUN adduser --disabled-password --gecos "" newuser
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get -y install time && \
apt-get -y install gcc mono-mcs && \
apt-get install pmccabe && \
rm -rf /var/lib/apt/lists/*
所有必需的软件都已安装。
【问题讨论】:
-
你能分享你的 dockerfile 吗?您是在容器启动时安装软件还是在启动应用程序之前在容器启动时进行任何其他操作?
-
我对 docker 文件详细信息提出了 ypdated 问题。所有必需的软件都已安装。我所说的应用程序是我从外部调用的 gcc。
-
有类似的担忧,但是我只得到 170 毫秒的开销。我还没有任何想法,但我运行 strace (
strace -ttt -T -f docker exec ...),它会产生有趣的提示。另外我了解到dockerCLI实际上是使用HTTP协议访问docker引擎,所以这也可能是开销的原因。 -
@Kuchara 你对此有进一步了解吗?
标签: docker docker-exec