前言:
如今各位老铁们对“ubuntu root文件夹有个叉”可能比较关注,兄弟们都想要了解一些“ubuntu root文件夹有个叉”的相关内容。那么小编也在网摘上搜集了一些对于“ubuntu root文件夹有个叉””的相关内容,希望你们能喜欢,我们快快来了解一下吧!我们习惯使用docker容器隔离不同程序的执行环境。在不同容器中看到的目录不同,且在一个容器中任意操作都不会影响到主机程序,也不会影响其他容器内程序,这是怎么实现的呢?
linux chroot命令修改程序运行根目录。程序默认的根目录是/,使用chroot可以指定程序运行的根目录,把程序可以操作的文件全部放到某个指定的文件夹下面,实现程序的隔离。
下面通过例子看下chroot使用方法
使用docker指令获取ubuntu镜像中文件,并把它们放到rootfs目录
$ mkdir rootfs$ docker export $(docker create ubuntu:bionic) | tar -C rootfs -xvf -
查看rootfs目录下的内容
$ ls rootfs 130 ↵bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
执行chroot后的ls命令,与ls rootfs, 返回内容相同,但此时返回信息是调用/rootfs/bin/ls后,返回的rootfs目录下的内容
$ sudo chroot rootfs lsbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
执行chroot后的pwd命令,可以看出pwd命令把rootfs作为根目录了
$ sudo chroot rootfs pwd/
执行chroot bash,终端把rootfs作为根目录。运行ps和df指令不能正常执行,是因为很多目录没有mount导致。
$ chroot rootfs bashroot@wq-VirtualBox:/# ps -efError, do this: mount -t proc proc /procroot@wq-VirtualBox:/# df -hdf: cannot read table of mounted file systems: No such file or directory总结
chroot可以把程序的执行限制在指定目录,实现程序间文件系统简单隔离目的。了解chroot作用,也能大致了解docker 如何实现不同容器间文件系统隔离。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #ubuntu root文件夹有个叉