4

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

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

$ time comlineapp "hello"

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

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

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

4

1 回答 1

0

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

于 2021-09-21T22:03:36.663 回答