docker在切换进程的根目录时(change root),优先会使用pivot_root系统调用,如果系统不支持的情况下,才会使用chroot。
这里主要的区别在于:
- chroot只改变某个进程的根目录,系统的其他部分依旧运行于旧的root目录。
- pivot_root把整个系统切换到一个新的root目录中,然后去掉对之前rootfs的依赖,以便于可以umount之前的文件系统。
docker在切换进程的根目录时(change root),优先会使用pivot_root系统调用,如果系统不支持的情况下,才会使用chroot。
这里主要的区别在于: