当前位置: 首页 > 知识库问答 >
问题:

docker是否在内部使用诸如chroot、unshare、nsenter等系统调用或围绕lxc的包装器

唐照
2023-03-14

我正在阅读一篇文章,通过使用诸如chroot、unshare、nsenter等linux系统调用,在不使用docker的情况下从头构建容器。

docker是否在内部对这些系统调用进行了包装,根据这个答案,docker exec似乎没有使用nsenter

如果docker正在使用这些调用,那么它使用哪个golang二进制文件来进行这些系统调用。

或者docker是lxc的包装器,但在我看来,它与这个答案不符

有人能告诉我docker目前用于构建容器的确切底层内容(系统调用/lxc等)吗。

共有1个答案

仰经武
2023-03-14

Docker不是LXC的包装器。在过去,它确实使用基于LXC的机制来启动容器,但这被本机实现所取代。

由于Docker是一个开源项目,您可以通过浏览源代码(后来被重命名为“moby”)来准确地看到它在做什么。

容器的实际创建由lib容器组件处理。

 类似资料:
  • 我试图用Ansible(V1.3.3)创建一个playbook,按照Pythonbrew自述文件中的说明在Debian服务器上安装Pythonbrew系统范围。 失败:[devserver]=>{“changed”:true,“cmd”:“pythonbrew install-v2.7.3”,“delta”:“0:00:00.016639”,“end”:“2013-10-11 15:21:40.9

  • 是否有任何方法可以在不创建容器的情况下使用进程组来使用LXC进行资源管理?我正在开发一个在沙箱中运行任意代码的服务,我只对硬件资源管理感兴趣。我不想要任何花言巧语;我只希望这些进程组能够访问主文件系统。 我被告知lxc是轻量级的,但是我看到的所有例子都为每个lxc进程创建了一个新的容器(即一个带有完整操作系统的目录)。我真的不明白这是如何比任何其他虚拟机解决方案轻得多。 那么,是否有任何方法可以使

  • 问题内容: 有什么方法可以在不创建容器的情况下使用LXC通过进程组进行资源管理?我正在研究一种在沙箱中运行任意代码的服务,对此我只对硬件资源管理感兴趣。我不要生根发芽;我只希望这些进程组可以访问主文件系统。 有人告诉我lxc重量轻,但是我看到的所有示例都为每个lxc进程创建了一个新容器(即具有完整OS的目录)。我真的没有看到它比其他任何VM解决方案轻得多。 那么,有什么方法可以将LXC用于控制和管

  • 所以我试图实现类似于Kotlin协程的东西在Java 目前,我试图拦截方法时,一个方法调用Waitable.waitFor()调用和所有的方法主体后,Waitable.waitFor()应调度 但在我当前的代码中,它只拦截方法调用,之后的方法体不包括在内 所以我想知道我的切入点表达式代码是错的吗?或者有什么更好的方法来实现这一点?

  • 问题内容: 我正在尝试使用内联汇编…我已阅读此页面http://www.codeproject.com/KB/cpp/edujini_inline_asm.aspx,但是我无法理解传递给函数的参数。 我正在写一个C编写示例。这是我的函数标头: 这是我的汇编代码: 我该怎么做才能将该代码传递给C函数…我正在做这样的事情: 那是因为我没有输出变量,那么我该如何处理呢?另外,使用此代码: 如何将代码内联

  • 问题内容: 我想从我的模型中的模板调用一个函数,例如: 当我想从模板中调用它时:假设在渲染时,我将channel_status_list传递为 这是行不通的,我能够调用一个不消耗任何东西的函数,但是如果找到有参数的函数就无法找到该怎么做 问题答案: 你无法使用模板中的参数调用函数。你只能在视图中执行此操作。另外,你可以编写一个自定义模板过滤器,看起来可能像这样: 现在,你可以在模板中执行以下操作: