Cómo se usa
- Pega los comandos docker run a la izquierda. Funcionan los comandos multilínea con barra invertida al final; separa varios comandos con saltos de línea, punto y coma o &&.
- El archivo Compose aparece a la derecha. Cada comando se convierte en un servicio con el nombre de --name, o el de la imagen si no hay ninguno.
- Revisa la nota en amarillo con lo que no se convirtió, y luego copia o descarga compose.yaml y ejecuta docker compose up -d.
Opciones explicadas
- Flags admitidos
- -p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, -h, --entrypoint, -l, --add-host, --dns, --cap-add/drop, --device, -m, --cpus, --shm-size, --ulimit, --log-driver/--log-opt, --health-*, -i, -t, --privileged, --init, --read-only y más.
- Volúmenes y redes con nombre
- Los volúmenes con nombre (como pgdata:/data) se declaran en el volumes de nivel superior. Las redes personalizadas se declaran como external true, es decir, se usa una red ya existente. Las redes host y none se convierten en network_mode.
- Puertos
- Los mapeos de puertos siempre se ponen entre comillas. YAML 1.1 interpreta valores como 22:22 como números en base 60, y la documentación de Docker recomienda escribir los puertos como cadenas de texto.
- Flags ignorados
- -d y --rm no tienen equivalente en Compose y se descartan. Los flags no admitidos, como --gpus, se listan en la nota.
Ejemplo
docker run -d --name web --restart unless-stopped -p 8080:80 \
-v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27
se convierte en:
services:
web:
image: nginx:1.27
container_name: web
restart: unless-stopped
mem_limit: 512m
ports:
- "8080:80"
environment:
- TZ=Asia/Shanghai
volumes:
- ./html:/usr/share/nginx/html:ro
Preguntas frecuentes
¿El archivo necesita una línea de version?
No. La versión actual de Docker Compose (v2) ya no usa la clave version de nivel superior; si está presente, se ignora con un aviso.
¿Se suben las contraseñas de mis variables de entorno?
No. El análisis y la conversión se ejecutan en tu navegador y no se envía nada a un servidor.
¿Admite argumentos entre comillas?
Sí. Las comillas simples, las comillas dobles y los escapes con barra invertida siguen las reglas de la shell, así que -e "MSG=hello world" conserva el valor completo.
Privacidad
Esta herramienta funciona por completo en tu navegador. Tus archivos y textos se procesan en tu dispositivo y nunca se suben a nuestros servidores.