Cómo hacer un chroot falso en RHEL / CentOS 7

Quiero hacer una 'virtualización' primitiva de mi entorno RHEL. Esto se debe al hecho de que tengo que ejecutar un par de binarys con routes duras que apuntan a, por ejemplo. /etc/conf directory. Hay un par de binarys diferentes que realmente necesitan una configuration diferente y conflictiva ubicada en el mismo directory.

Así que quiero ejecutar la aplicación A que lee conf de /etc/conf y quiero ejecutar la aplicación B que lee conf de /mnt/etc/conf pero en realidad "cree" que está leyendo de /etc/conf proporcionando un script que "cambia" la location actual / dir a /mnt .

Tengo la cabeza para este tipo de operaciones que puedes hacer con fakechroot, pero ya no está disponible. ¿Es eso correcto? ¿Hay alguna forma mejor de proporcionar esta funcionalidad?

Podría intentar usar un contenedor acoplable. La forma más simple de hacerlo (para que no tenga que aprender la syntax de Dockerfile ) sería instalar docker y docker run -it centos:<version> (donde está escrita la versión de RHEL para estas utilidades) y luego desde adentro del contenedor configure todos los binarys y ejecutables como deben ser, salga del shell / contenedor y use docker ps para encontrar el ID del contenedor.

Por ejemplo:

 [root@website ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 42f454cc1c71 centos:latest "/bin/bash" About an hour ago Up About an hour sick_davinci 

Luego use docker commit para save la image:

 docker commit 42f454cc1c71 baseImage 

Luego para ejecutar firstUtil (o como se llame):

 docker run -it --rm -v /srv/configs/firstUtil:/etc/conf baseImage /path/to/firstUtil 

Luego para ejecutar secondUtil :

 docker run -it --rm -v /srv/configs/secondUtil:/etc/conf baseImage /path/to/secondUtil 

etcétera etcétera

En cada uno de los commands de docker run anterior, ejecutará el command en un contenedor basado en la image que configuró y luego el --rm hará que se derribe una vez que el command dado haya finalizado. El --rm es útil para que una ejecución de la utilidad no pueda influir en la siguiente a less que la utilidad modifique algo dentro de /etc/conf ya que cada vez que se ejecuta el command es la primera vez que se ejecuta algo en el contenedor.

Puede poner estos commands de docker run acoplador en un script o alias de shell si es más fácil escribir.

Tenga en count que Docker intentará modificar el cortafuegos y la tabla de routing en el host de forma pnetworkingeterminada.