有没有办法加快 docker exec 的速度?

2024-03-08

有没有办法消除 docker exec 的开销?例如,当我打电话时docker exec ls在已经运行的容器上,需要0.15秒才能返回结果。

root@min:/# time docker exec 6f ls
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

real    0m0.159s
user    0m0.028s
sys 0m0.028s

但是,如果我启动附加的容器,并且ls从容器的命令行,只需要几毫秒。

root@min:/# docker start -ai 6f
[root@6f384443d3a6 /]# time ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

real    0m0.004s
user    0m0.003s
sys 0m0.000s

容器的创建方式如下:

$ docker create -t -i fedora bash
6f8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
$ docker start 6f

开销是多少docker exec,有没有办法减少呢? (我正在尝试创建一个服务来托管正在运行的容器并在其上调用可执行文件并返回结果。但如果每次调用需要 150 毫秒,那就不好了)。


Docker 被实现为基于 HTTP 的服务,通常通过 Unix 套接字调用。例如,您可以看到“创建一个执行实例” https://docs.docker.com/engine/api/v1.40/#operation/ContainerExecDocker API 文档中的请求。运行一次至少需要两次往返docker exec命令,加上启动主机端的开销docker过程。在本机 Linux 上,HTTP 调用将通过 Unix 套接字进行;在其他平台上,根据您的设置,它可能需要跨越虚拟机边界甚至通过 TCP。

单次 150 毫秒docker exec直觉上我感觉调用有点慢,但并没有超出合理范围。你无能为力来加快速度,因为所有这些机制都在docker客户端工具和服务器守护程序。

典型的 Docker 设置将让容器运行长时间运行的服务器进程(而不是裸露的服务器进程)fedora容器,而不是bashshell作为主要容器进程)。您应该能够向容器发出网络请求,这可能会比docker exec(并且不需要管理员权限)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法加快 docker exec 的速度? 的相关文章

随机推荐

  • 当身体从圆形变为矩形时,无法识别联系人

    在来自的帮助下here https stackoverflow com questions 32352886 how to set physics properties for a circle so it follows given pa
  • @XmlRegistry - 它是如何工作的?

    我找到了一些 JAXB2 的例子 XmlRegistry通过互联网 但没有很好的深入教程来谈论使用的概念 XmlRegistry with XmlElementDecl 想知道这是否是一个总体上没有被太多探索的概念 无论如何 这是我的问题
  • Python“ascii”编解码器无法使用 request.get 对字符进行编码

    我有一个 Python 程序 它从网站抓取数据并返回 json 爬网站点的元标记字符集 ISO 8859 1 这是源代码 url https www example com source code requests get url plai
  • Laravel 属于通过类似关系

    现在我有这些方法 程序 php public function institute return this gt belongsTo Institute class institute id gt withTrashed User php
  • 访问selenium中的css类属性

    我有一个 HTML div 元素并希望使用 Selenium 检查它是否左对齐 但是 那float leftCSS 属性在 CSS 类中定义 有什么方法可以通过 Selenium 访问 CSS 类属性吗 或者还有其他方法可以获取这个值吗 d
  • jQuery mobile - Pagecontainer 从 DOM 中消失

    在 jQuery mobile 中 我想从外部文件加载页面容器 我可以将标记添加到我的 DOM 中 但之后我面临的问题是 一旦导航到 page2 整个 page1 div 就会从 DOM 中消失 因此我无法返回 请参见下面的屏幕截图 单击
  • 如何从iPhone sdk中的城市名称获取位置(坐标)?

    friends 因为我们在android中有google api的geocoder getfromlocation locationname maximumResults 函数 我在 iphone sdk 中没有看到这样的函数来从城市名称获
  • 在 Linux 中调试 C++ 程序

    我写了一个简单的 C 程序 如下所示 include
  • 截断文本并在鼠标悬停时显示它

    我需要截断文本 末尾带有 并且将鼠标悬停在整个文本上时应该展开 我尝试用下面的代码截断 此代码的问题是 它会在单击时展开内容 但我需要当用户将鼠标悬停在 p 标签上的任何位置时打开它 var len 100 var p document g
  • 阻止滚动以及展开/折叠可折叠工具栏

    我正在使用Collapsible Toolbar在我的应用程序中 活动启动时可折叠工具栏处于展开状态 启用滚动并且正常工作 但现在我需要显示全屏错误布局 以防我的 API 失败 在这种情况下 我必须折叠工具栏并阻止滚动效果 错误布局显示重试
  • Spark hivecontext 的查询会锁定 hive 表吗?

    我知道如果我从 Hive 提交查询 将获取共享锁 然后 Hive 表将被查询锁定 https cwiki apache org confluence display Hive Locking https cwiki apache org c
  • 实现下拉菜单项颤动的复选框

    如何在flutter应用程序中实现下拉菜单项的复选框 每个里面DropdownMenuItem 你可以有Row作为一个孩子 你可以通过CheckBox其次是Text 帮助您入门的示例工作代码 body Center child Dropdo
  • 获取 ntp 调整通知

    我的情况很奇怪 我需要一些有关 NTP 时间调整的指导 我有一台运行 NTP 守护进程的 PC Red Hat 这台 PC 通过 LAN 上的 Stratum 2 时间服务器调整其时间 我的 PC 还通过串行端口 RS 232 连接到 DV
  • 如何将 Vec<&mut T> 转换为 Vec<&T>?

    我有一个可变引用向量 struct T let mut mut vec Vec lt mut T gt vec 如何将它 的副本 传递到采用不可变引用向量的函数中 fn cool func mut immut vec Vec lt T gt
  • iPad IOS html 表单选择在触摸时无法打开

    我有一个选择框 通过以下方式创建
  • Vim 加载 vimrc 后是否加载插件?

    我正在尝试覆盖插件中设置的突出显示 该插件执行以下操作 highlight link WordUnderTheCursor Underlined 首先 我不知道 添加到highlight做任何事 但这无关紧要 在 vimrc 中做类似的事情
  • 使用异步函数订阅可观察对象是否安全

    我有一个以 50Hz 发送事件的事件发射器 我想使用异步方法订阅这个发射器 代码如下所示 this emitter fromEventPattern this addHandler this removeHandler err char g
  • org.hibernate.MappingException:属性映射在 ENUM 实体中的列数错误

    我创建了数据库 其中引用了 ENUM 表 并且该枚举的实体有例外 脚本示例 CREATE TABLE status code VARCHAR 40 status ENUM not started in progress finished i
  • 从 jquery 安全地调用我的 Web api

    我有一个简单的问题 可能会指出一个复杂的答案 我有一个运行良好的网络 API 但现在我想设置身份验证 授权 我需要它在所有平台上工作 但主要来自 jQuery 当然 我不想像这样以纯文本形式沿着管道发送我的用户名和密码 function G
  • 有没有办法加快 docker exec 的速度?

    有没有办法消除 docker exec 的开销 例如 当我打电话时docker exec ls在已经运行的容器上 需要0 15秒才能返回结果 root min time docker exec 6f ls bin boot dev etc