Crear un contenedor Docker que nos permita ejecutar comandos Docker en su interior

Tiempo de lectura: < 1 minuto

Os traigo este tutorial que surge de una necesidad de poder ejecutar comandos Docker mediante el automatizador de tareas Ofelia (https://devcodelight.com/automatizar-tareas-con-cron-desde-docker-con-ofelia)

Para poder ejecutar comandos Docker dentro de un contenedor que está levantado con ese propio Docker en una máquina local, lo primero que necesitamos hacer es añadir un cliente Docker a nuestro contenedor.

Para crear la imagen personalizada utilizo Alpine:

# Usa una imagen base más ligera (Alpine Linux)
FROM alpine:latest

# Instala el cliente de Docker
RUN apk --no-cache add docker

# Define el comando predeterminado a ejecutar al iniciar el contenedor
CMD ["/bin/sh", "-c", "sleep infinity"]

Y para lanzar la imagen, voy a usar este Docker compose:

version: "3"
services:
  docker_excuter:
    build:
      context: .
    container_name: container_docker
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Con esta configuración, ya podemos ejecutar comandos Docker en este contenedor, con el siguiente comando podemos ejecutar un docker ps y ver a qué contenedores tiene acceso:

docker-compose exec container_docker docker ps

Gracias a esta configuración he podido realizar mis copias de seguridad automáticas (https://devcodelight.com/hacer-una-copia-de-seguridad-de-mysql-o-mariadb-con-ofelia-cron-y-docker)

Deja un comentario