Vai al contenuto
ToolMug

Da docker run a Docker Compose

Incolla uno o più comandi docker run per ottenere il compose.yaml equivalente. Vengono convertiti porte, volumi, variabili d'ambiente, reti, riavvio, limiti di memoria e CPU, logging e health check; i flag non convertibili vengono elencati così puoi aggiungerli manualmente.

Funziona nel tuo browser: nulla di ciò che inserisci viene caricato

docker run → Docker Compose
docker run
Docker Compose

Come si usa

  1. Incolla a sinistra i comandi docker run. Funzionano comandi su più righe con barre inverse finali; separa più comandi con nuove righe, punto e virgola o &&.
  2. Il file Compose appare a destra. Ogni comando diventa un servizio chiamato come --name oppure come l'immagine se non c'è un nome.
  3. Controlla la nota gialla per ciò che non è stato convertito, poi copia o scarica compose.yaml ed esegui docker compose up -d.

Opzioni spiegate

Flag supportati
-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 e altri.
Volumi e reti con nome
I volumi con nome (come pgdata:/data) vengono dichiarati sotto volumes al livello principale. Le reti personalizzate sono dichiarate come external true, quindi viene usata una rete esistente. Le reti host e none diventano network_mode.
Porte
Le mappature delle porte sono sempre racchiuse tra virgolette. YAML 1.1 legge valori come 22:22 come numeri in base 60 e la documentazione Docker consiglia di scrivere le porte come stringhe.
Flag ignorati
-d e --rm non hanno equivalenti in Compose e vengono rimossi. Flag non supportati come --gpus vengono elencati nella nota.

Esempio

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

diventa:

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

Domande frequenti

Il file deve avere una riga version?

No. Docker Compose attuale (v2) non usa più il campo version al livello principale; se presente viene ignorato con un avviso.

Le password nelle variabili d'ambiente vengono caricate?

No. Analisi e conversione avvengono nel browser e nulla viene inviato a un server.

Gestisce gli argomenti tra virgolette?

Sì. Virgolette singole, doppie e escape con barra inversa seguono le regole della shell, quindi -e «MSG=hello world» mantiene l'intero valore.

Privacy

Questo strumento funziona interamente nel tuo browser. File e testi vengono elaborati sul tuo dispositivo e non vengono mai caricati sui nostri server.

Strumenti correlati