【问题标题】:Does docker internally uses system calls like chroot, unshare, nsenter, etc or a wrapper around lxcdocker 内部是否使用 chroot、unshare、nsenter 等系统调用或 lxc 的包装器
【发布时间】:2018-06-05 08:40:03
【问题描述】:

我正在通过article 从头开始​​构建容器,而无需使用 docker,只需使用 chroot、unshare、nsenter 等 linux 系统调用。

docker 内部是否对这些系统调用进行了包装,似乎 docker exec 没有按照 answer 使用 nsenter

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

或者 docker 是 lxc 的包装器,但在我看来,这不是 answer

谁能指出 docker 当前用于构建容器的确切低级内容(系统调用/lxc 等)。

【问题讨论】:

标签: docker go lxc chroot nsenter


【解决方案1】:

Docker 不是 LXC 的包装器。在过去,它确实使用基于 LXC 的机制来启动容器,但那是 replaced by a native implementation

由于 Docker 是一个开源项目,您可以通过浏览 the source(自 been renamed "moby" 起)来确切地看到它在做什么。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2012-05-25
    • 2013-11-30
    • 2013-11-29
    • 2016-12-01
    • 1970-01-01
    相关资源
    最近更新 更多