Docker exec 命令非常慢

use*_*483 5 docker docker-exec

我已经构建了 docker 容器系统,其中容器包含命令行应用程序。我传递参数并使用来自另一个应用程序的 docker exec 命令运行应用程序。

当我从 docker 内部运行命令行应用程序时,需要 0.003 秒才能运行。

$ time comlineapp "hello"

但是当我使用 docker exec 从外部 docker 运行它时,需要 0.500 秒

$ time docker exec comline app "hello"

显然 docker exec 需要很多时间。我们需要任何帮助来尽可能减少 docker exec 命令的时间。

这是泊坞窗文件

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/*

Run Code Online (Sandbox Code Playgroud)

所有必需的软件都已安装。

小智 2

当您从外部 docker 发送请求时,会通过 unix 套接字发出\xe2\x80\x99s(多个)API 请求,以及进程本身的许多额外设置,例如应用 seccomp 配置文件、设置命名空间、删除权限等。利用 docker 的正确方法是在其中创建一个服务,然后让端点处理这些服务。一个简单的 python 服务应该可以满足这个需求。我们在我们的平台中进行了相同的更改,并节省了数千毫秒的发布时间。

\n