chroot
chroot是针对某个进程,系统的其他部分依旧运行于老的root目录中.
准备工作, 先准备好需要作为根目录的地方, 并准备busybox.
root@nicktming:~# mkdir /tmp/nicktming
root@nicktming:~# cd /tmp/nicktming
root@nicktming:/tmp/nicktming# mkdir bin
root@nicktming:/tmp/nicktming# which bash
/bin/bash
root@nicktming:/tmp/nicktming# cp /bin/bash bin
root@nicktming:/tmp/nicktming# cp /lib* .
root@nicktming:/tmp/nicktming# wget https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64
root@nicktming:/tmp/nicktming# mv busybox-x86_64 busybox
root@nicktming:/tmp/nicktming# chmod +x busybox
root@nicktming:/tmp/nicktming# pwd
/tmp/nicktming
root@nicktming:/tmp/nicktming# ls
bin busybox lib lib32 lib64 libx32
开始操作
----------------------------terminal 01-------------------------------
root@nicktming:~# chroot /tmp/nicktming /bin/bash
bash-4.3# pwd
/
bash-4.3# ./busybox ls -l
total 972
drwxr-xr-x 2 0 0 4096 Apr 5 13:05 bin
-rwxr-xr-x 1 0 0 973200 Jul 9 2013 busybox
drwxr-xr-x 21 0 0 4096 Apr 5 12:35 lib
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 lib32
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 lib64
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 libx32
bash-4.3# ./busybox echo "for testing" > test.txt
bash-4.3# ./busybox ls -l
total 976
drwxr-xr-x 2 0 0 4096 Apr 5 13:05 bin
-rwxr-xr-x 1 0 0 973200 Jul 9 2013 busybox
drwxr-xr-x 21 0 0 4096 Apr 5 12:35 lib
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 lib32
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 lib64
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 libx32
-rw-r--r-- 1 0 0 12 Apr 5 14:26 test.txt
bash-4.3# ./busybox cat test.txt
for testing
// 可以看到chroot后只能在此根目录进行操作, 以外的目录都访问不到
bash-4.3# cd /tmp
bash: cd: /tmp: No such file or directory
可以看到chroot后在当前terminal中/tmp/nicktming已经为根目录了. 打开另外一个terminal.
----------------------------terminal 02-------------------------------
root@nicktming:~# cd /tmp/nicktming/
root@nicktming:/tmp/nicktming# pwd
/tmp/nicktming
root@nicktming:/tmp/nicktming# ls
bin busybox lib lib32 lib64 libx32 test.txt
root@nicktming:/tmp/nicktming# cat test.txt
for testing
root@nicktming:/tmp/nicktming# echo "test1" > test1.txt
新增加一个test1.txt
----------------------------terminal 01-------------------------------
bash-4.3# ./busybox ls -l
total 980
drwxr-xr-x 2 0 0 4096 Apr 5 13:05 bin
-rwxr-xr-x 1 0 0 973200 Jul 9 2013 busybox
drwxr-xr-x 21 0 0 4096 Apr 5 12:35 lib
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 lib32
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 lib64
drwxr-xr-x 2 0 0 4096 Apr 5 12:35 libx32
-rw-r--r-- 1 0 0 12 Apr 5 14:26 test.txt
-rw-r--r-- 1 0 0 6 Apr 5 14:43 test1.txt
bash-4.3# ./busybox cat test1.txt
test1
bash-4.3# exit
exit
pivot_root
全部内容
mydocker.png