linux pivot root,[mydocker]---通过例子理解chroot 和 pivot_root

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

全部内容

46791cbbb48a

mydocker.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值