Get it on Google Play
Tu partner Freelance para tus proyectos IT

Controlando Docker desde dentro de un contenedor

07-07-2020
Docker con Docker

Docker con Docker

Una de las funcionalidades mas brutales que tenemos con Docker es la de controlar el propio Docker desde dentro de un contenedor Docker. Tu arrancas un contenedor que tiene la misma capacidad de gestionar el Docker Engine que el anfitrión. Dadle un par de vueltas.

Albert! Y yo para que quiero esto

Buena pregunta! Esto abre la puerta a crear aplicaciones capaces de auto-configurarse(Como Traefik, del que hemos hablado en este blog) o aplicaciones para gestionar/monitorizar Docker en varios hosts.

Tiene grandes aplicaciones para Big Data donde se requiere el aprovisionamiento y gestión de muchas máquinas o servicios Cloud o Hostings con aplicaciones de autoservicios o self-service.

Además, podemos combinarlo con Docker Machine y Swarm(Si todavía no os ha explotado la cabeza).

Generar la imagen Docker con Docker

Este fichero ‘Dockerfile’ contiene las instrucciones para generar la imagen(Aunque nos la podríamos ahorrar porque es muy poco):

FROM ubuntu:latest
RUN apt update && apt install -y docker.io
CMD /bin/bash -c "while true; do sleep 600; done"

Como veis se trata te partir de una imagen de Ubuntu e instalar Docker. El contenedor se arrancará con un bucle infinito que no hace nada.

Generamos la imagen llamada ‘subdocker’ con el siguiente comando:

sudo docker build . -t subdocker

Arrancar el contenedor

Ahora vamos ha arrancar el contenedor, que es donde realmente esta la ‘chicha’:

sudo docker run -d \
      -v /var/run/docker.sock:/var/run/docker.sock \
      subdocker

Arrancamos la imagen y mapeamos la carpeta ‘/var/run/docker.sock’ con la misma carpeta del contenedor. De esta manera el contenedor tendrá control total del Docker de la máquina anfitrión de manera transparente.

Ahora si os conectáis al contenedor podréis ver los contenedores, arrancar nuevos contenedores, etc. como si estuvierais fuera del contenedor.

Si os ha interesado esta funcionalidad podéis buscar en este mismo blog como gestionar Docker a partir de su API, creo que tenemos también varios artículos.

Si te ha servido, por favor comparte

Interesado en formación Docker?

 

Leave a Reply