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.

Deja un comentario