Saltar al contenido

docker run a Compose

Convierte un comando docker run en un servicio docker-compose.yml, o al revés.

Entrada
Salida

docker run a Compose

Pega un comando docker run y esta herramienta lo reescribe como un servicio docker-compose.yml, con la imagen, puertos, volúmenes, variables de entorno, red y política de reinicio asignados a sus equivalentes en compose. Invierte la opción de dirección y también funciona al revés: pega un archivo compose y obtén el comando docker run equivalente para cada servicio, útil cuando solo tienes un archivo compose pero necesitas reproducir un contenedor manualmente.

Pega más de un comando docker run, uno por línea, y cada uno se convierte en su propio servicio en el mismo archivo compose — práctico para convertir un puñado de contenedores ad-hoc en una pila multiservicio adecuada. Los switches reconocidos incluyen -p/--publish, -v/--volume, -e/--env, --network, --restart, --memory y --cpus (mapeados a un bloque deploy.resources.limits), además de --name, --workdir, --user, --entrypoint, --label y --hostname. Las variables de entorno pueden mantenerse inline bajo environment: o ser movidas a un archivo .env generado referenciado con env_file:, y el formato del archivo compose puede ser escrito con o sin una clave version:.

No todos los flags de docker run tienen un equivalente en compose — cosas como --rm o --pull son switches de ciclo de vida del contenedor sin una configuración de compose por servicio. La herramienta nunca los descarta en silencio: los flags no soportados se enumeran como comentarios al lado del servicio al que pertenecen, para que veas exactamente qué no se convirtió. Desactivar "preservar el orden original de los flags" ordena cada lista (puertos, volúmenes, entorno) alfabéticamente en lugar de mantener el orden que los escribiste, lo que puede hacer que un diff generado sea más fácil de revisar.

Todo se ejecuta localmente en tu navegador — ningún comando, nombre de imagen o variable de entorno se envía a ningún lado. Copia el resultado, descárgalo como un archivo .txt o envía la salida nuevamente a la entrada para seguir refinándola.

Preguntas frecuentes

¿Puedo convertir varios comandos docker run a la vez?
Sí. Pega un comando docker run por línea (o usa una barra invertida al final para continuar un comando en varias líneas) y cada uno se convierte en un servicio separado en el archivo compose generado.
¿Qué sucede con los flags que compose no puede expresar, como --rm?
No se descartan silenciosamente. Cada flag no soportado se enumera como un comentario al lado del servicio al que pertenece, para que sepas exactamente qué no se convirtió.
¿También convierte docker-compose.yml nuevamente a comandos docker run?
Sí. Cambia la opción de dirección a "compose → docker run" y pega un archivo compose; la herramienta imprime un comando docker run para cada servicio.
¿Por qué pondría variables de entorno en un archivo .env separado en lugar del archivo compose?
Mantiene los secretos y valores por entorno fuera del control de versiones cuando el archivo compose en sí está confirmado. Elige "Archivo .env separado" y la herramienta mueve las variables allí y las referencia con env_file:.
¿Se carga mi comando o archivo compose en algún lado?
No. La conversión se ejecuta completamente en tu navegador usando JavaScript — nada de lo que pegues se va a ningún lado.