Composerize
Composerize: herramienta para convertir comandos docker run a docker-compose.yml automáticamente
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.
“Composerize: Redo docker run commands in Docker Compose format” — magicmark/composerize
Funcionalidades clave
- Conversión automática: Transforma la sintaxis y las opciones de un comando
docker runa la estructura de un servicio de Docker Compose. - Interfaz web y CLI: Disponible como una herramienta en línea en
composerize.comy como un paquete denpmpara su uso en la línea de comandos. - Soporte para la mayoría de las opciones de
docker run: Reconoce y convierte volúmenes, puertos, variables de entorno, y otras opciones comunes. - Decomposerize: Incluye una herramienta inversa,
decomposerize, que convierte un archivodocker-compose.ymlde nuevo a comandosdocker run.
Ventajas
- Ahorro de tiempo: Automatiza la creación de archivos
docker-compose.yml, reduciendo el esfuerzo manual. - Facilita el aprendizaje: Ayuda a los usuarios a entender la sintaxis de Docker Compose al mostrar la correspondencia directa con los comandos
docker run. - Mejora la gestión de contenedores: Facilita la transición a Docker Compose para una mejor organización y reproducibilidad de los entornos.
- Flexibilidad: Se puede utilizar tanto en un navegador web como localmente en un entorno de desarrollo.
Uso
Interfaz web
- Visita composerize.com.
- Pega tu comando
docker runen el campo de entrada. - La herramienta generará automáticamente el contenido del archivo
docker-compose.ymlcorrespondiente.
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
-
Instala Composerize globalmente usando
npm:npm install -g composerize -
Ejecuta Composerize con un comando
docker runentre 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.
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
- Docker Compose: Aprende a escribir y optimizar archivos
docker-compose.yml - Volúmenes y redes: Entiende cómo funcionan los volúmenes y redes en Compose
- Comandos básicos: Referencia de comandos
docker run