chroot 也属于容器隔离中使用的一项技术,以下是一个简单的通过chroot 使用alpinelinux

下载alpinelinux rootfs

curl -o alpine.tar.gz http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-minirootfs-3.10.0-x86_64.tar.gz

解压

tar xvf alpine.tar.gz

目录结构

drwxr-xr-x 2 root root 4096 620 2019 bin
drwxr-xr-x 2 root root 4096 620 2019 dev
drwxr-xr-x 15 root root 4096 620 2019 etc
drwxr-xr-x 2 root root 4096 620 2019 home
drwxr-xr-x 5 root root 4096 620 2019 lib
drwxr-xr-x 5 root root 4096 620 2019 media
drwxr-xr-x 2 root root 4096 620 2019 mnt
drwxr-xr-x 2 root root 4096 620 2019 opt
dr-xr-xr-x 2 root root 4096 620 2019 proc
drwx------ 2 root root 4096 1225 09:55 root
drwxr-xr-x 2 root root 4096 620 2019 run
drwxr-xr-x 2 root root 4096 620 2019 sbin
drwxr-xr-x 2 root root 4096 620 2019 srv
drwxr-xr-x 2 root root 4096 620 2019 sys
drwxrwxrwt 2 root root 4096 620 2019 tmp
drwxr-xr-x 7 root root 4096 620 2019 usr
drwxr-xr-x 11 root root 4096 620 2019 var

使用chroot

chroot /opt/dalong/alpine /bin/ls

效果

主机目录结构

几个问题

  • 命令找不到
    因为默认配置的环境变量不对,解决方法,添加path,如下
 
export PATH=$PATH:/bin:/sbin 

使用命令(比如apk)效果

说明

chroot 是容器使用的一项技术,还有其他的,cgroups、namespace。。。

参考资料

https://alpinelinux.org/downloads/
https://www.howtogeek.com/441534/how-to-use-the-chroot-command-on-linux/

12-19 21:39