docker内部是否使用chroot,unshare,nsenter等系统调用或lxc周围的包装器

时间:2017-12-22 18:25:28

标签: docker go lxc chroot nsenter

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

docker内部是这些系统调用的包装器,似乎docker exec没有按照这个answer使用nsenter

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

或者码头工具是lxc的包装,但根据answer

,它似乎不适合我。

任何人都可以向我指出docker目前用于构建容器的确切低级别内容(系统调用/ lxc等)。

1 个答案:

答案 0 :(得分:2)

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

由于Docker是一个开源项目,您可以通过浏览the source(从been renamed "moby"开始),看到完全它正在做什么。

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