Buenas, como ya hace mucho que no escribo me gustaría poner un nuevo post para ir aprovechando el día.
Os traigo como hacer un chroot con docker partiendo de un contenedor vació.
Lo primero que tenemos que hacer es crear la estructura de nuestro container
mkdir root cd root mkdir bin dev etc lib proc sys tmp usr
Ahora creamos los enlaces correspondientes
ln lib lib64 ln lib usr/lib ln bin sbin
Copiamos los dispositivos
cp -a /dev/console dev cp -a /dev/null dev cp -a /dev/ptmx dev cp -a /dev/pts dev cp -a /dev/random dev cp -a /dev/stderr dev cp -a /dev/stdin dev cp -a /dev/stdout dev cp -a /dev/tty dev cp -a /dev/unrandom dev cp -a /dev/zero dev
creamos el fichero de password y grupos para root
echo "root:x:0:0:root:/:/bin/sh" > etc/passwd echo "root:x:0:" > etc/group
Con esto ya tenemos nuestra estructura base creada esta estructura la podemos aplicar a cualquier imagen que vayamos hacer con docker, esto seria el scratch de nuestra imagen
Ahora lo que hacemos es crear la imagen para ello ejecutamos este comando
tar -cf- . | docker import - chroot
Y ahora solo tenemos que correr la imagen con lo siguiente
docker run -v /bin/:/bin/:ro -v /usr/bin/:/usr/bin/:ro -v /usr/lib/:/lib/:ro -it none /bin/bash
Ahora ya tenemos nuestro chroot
Esto nos puede ser útil para probar scripts sin romper nada en nuestra maquina o para testar todo lo que necesitemos sin fastidiar nada.