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

docker是否在内部使用诸如chroot、unshare、nsenter等系统调用或围绕lxc的包装器,docker,go,lxc,chroot,nsenter,Docker,Go,Lxc,Chroot,Nsenter,我正在经历一个从头开始构建容器的过程,不使用docker,只使用linux系统调用,如chroot、unshare、nsenter等 docker是否在内部为这些系统调用设置了包装器,docker exec似乎没有使用nsenter 如果docker正在使用这些调用,那么它使用哪个golang二进制文件来进行这些系统调用 或者docker是lxc的包装器,但在我看来并不是这样 有人能告诉我docker目前用于构建容器的底层内容(系统调用/lxc等)吗。docker不是lxc的包装器。在过去,它确

我正在经历一个从头开始构建容器的过程,不使用docker,只使用linux系统调用,如chroot、unshare、nsenter等

docker是否在内部为这些系统调用设置了包装器,docker exec似乎没有使用nsenter

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

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


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

docker不是lxc的包装器。在过去,它确实使用基于LXC的机制来启动容器,但事实并非如此

由于Docker是一个开源项目,您可以通过浏览(自那时起就有了)来准确地看到它在做什么


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

Docker调用containerd,默认情况下它使用runc创建容器,因此请查看runc项目: