Vai al contenuto
ToolMug

Da Docker Compose a docker run

Incolla un file compose.yaml o docker-compose.yml per ottenere il comando docker run equivalente per ogni servizio: utile per avviare un container su una macchina senza Compose o controllare esattamente come viene avviato un servizio.

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

Docker Compose → docker run
Docker Compose
docker run

Come si usa

  1. Incolla a sinistra il file Compose oppure fai clic su Carica esempio.
  2. A destra appare un comando docker run per ogni servizio, nell'ordine del file.
  3. Controlla la nota gialla per i campi non convertiti (come build, deploy o depends_on), poi copia i comandi.

Opzioni spiegate

Campi supportati
image, container_name, command, entrypoint, ports, volumes (sintassi breve e lunga), environment, env_file, networks, network_mode, restart, user, working_dir, labels, logging, ulimits, healthcheck, limiti delle risorse e altro.
Campi non convertiti
I campi esclusivi di Compose come build, deploy, depends_on, secrets e configs sono elencati nella nota. Un servizio senza image riceve un nome immagine segnaposto: devi prima eseguire il build.
Più reti
docker run può collegarsi a una sola rete con --network; collega le altre in seguito con docker network connect.

Esempio

Un servizio come questo:

services:
  web:
    image: nginx:1.27
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
      - data:/var/cache/nginx
    environment:
      TZ: UTC
    restart: unless-stopped
    depends_on: [db]

diventa:

docker run -d \
  --name web \
  -p 8080:80 \
  -v ./html:/usr/share/nginx/html:ro \
  -v data:/var/cache/nginx \
  -e TZ=UTC \
  --restart unless-stopped \
  nginx:1.27

depends_on non ha un equivalente in docker run, quindi viene elencato nella nota. Avvia tu i servizi a cui fa riferimento, nell’ordine giusto. Il percorso relativo ./html viene risolto rispetto alla cartella da cui esegui il comando, quindi eseguilo dalla cartella che contiene quella directory.

Domande frequenti

Perché ogni comando include -d?

Compose avvia normalmente i servizi in background (docker compose up -d), quindi lo fanno anche questi comandi. Rimuovi -d per vedere l'output in primo piano.

I volumi e le reti con nome devono esistere prima?

docker run crea automaticamente i volumi con nome mancanti, ma le reti personalizzate devono essere create prima con docker network create <nome>.

Il mio file viene caricato?

No. Analisi e conversione avvengono nel browser.

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