README · by ansango
← Volver al libro

Composerize

Composerize: herramienta para convertir comandos docker run a docker-compose.yml automáticamente

~2 min de lectura

Composerize es una herramienta que convierte comandos docker run en archivos docker-compose.yml. Simplifica el proceso de migración de un contenedor independiente a una configuración de Docker Compose, permitiendo una gestión más sencilla de aplicaciones multicontenedor.

Descripción oficial del repositorio

“Composerize: Redo docker run commands in Docker Compose format” — magicmark/composerize

Funcionalidades clave

La conversión es automática pero puede necesitar ajustes manuales, especialmente para configuraciones complejas.

Ventajas

Uso

Interfaz web

  1. Visita composerize.com.
  2. Pega tu comando docker run en el campo de entrada.
  3. La herramienta generará automáticamente el contenido del archivo docker-compose.yml correspondiente.

Ejemplo: Si pegas:

docker run -d -p 8080:80 -v /datos:/app/data -e DEBUG=true --name mi-app mi-imagen:1.0

Obtendrás:

version: '3.3'
services:
  mi-app:
    image: mi-imagen:1.0
    container_name: mi-app
    ports:
      - "8080:80"
    volumes:
      - /datos:/app/data
    environment:
      - DEBUG=true

Línea de comandos

  1. Instala Composerize globalmente usando npm:

    npm install -g composerize
  2. Ejecuta Composerize con un comando docker run entre comillas:

    composerize "docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro --name mi-container mi-imagen"

Esto imprimirá el docker-compose.yml resultante en la salida estándar.

Ejemplo práctico

Supongamos que tienes un contenedor ejecutándose con:

Pégalo en composerize.com y obtendrás:

Luego puedes:

Decomposerize (inversa)

La herramienta inversa, decomposerize, convierte un docker-compose.yml de vuelta a comandos docker run:

npm install -g decomposerize
decomposerize docker-compose.yml

Útil si necesitas extraer un servicio específico como comando.

Limitaciones

Consejo: Después de la conversión, revisa el YAML generado cuidadosamente.

Próximos pasos

Referencias