Ogni volta che eseguo
docker-compose start
docker-compose ps
Vedo i miei contenitori con lo stato "UP". Se lo faccio
docker-compose up -d
Vedrò più verboso ma avrà lo stesso stato. C'è qualche differenza tra i due comandi?
Ogni volta che eseguo
docker-compose start
docker-compose ps
Vedo i miei contenitori con lo stato "UP". Se lo faccio
docker-compose up -d
Vedrò più verboso ma avrà lo stesso stato. C'è qualche differenza tra i due comandi?
Risposte:
docker-compose start
( https://docs.docker.com/compose/reference/start/ )
Avvia i contenitori esistenti per un servizio.
docker-compose up
( https://docs.docker.com/compose/reference/up/ )
Compila, (ri) crea, avvia e si collega ai contenitori per un servizio.
A meno che non siano già in esecuzione, questo comando avvia anche tutti i servizi collegati.
Il
docker-compose upcomando aggrega l'output di ogni contenitore (essenzialmente in esecuzionedocker-compose logs -f). Quando il comando termina, tutti i contenitori vengono arrestati. L'esecuzionedocker-compose up -davvia i contenitori in background e li lascia in esecuzione.Se esistono contenitori esistenti per un servizio e la configurazione o l'immagine del servizio è stata modificata dopo la creazione del contenitore,
docker-compose upriprende le modifiche arrestando e ricreando i contenitori (preservando i volumi montati). Per impedire a Compose di rilevare le modifiche, utilizzare il--no-recreateflag.
Per il riferimento completo alla CLI:
https://docs.docker.com/compose/reference/
Nella finestra mobile Domande frequenti questo è spiegato molto chiaramente:
Qual è la differenza tra up, run e start?
In genere, vuoi
docker-compose up. Utilizzareupper avviare o riavviare tutti i servizi definiti in un filedocker-compose.yml. Nella modalità "allegata" predefinita, vengono visualizzati tutti i registri di tutti i contenitori. In modalità "disconnessa" (-d), Compose esce dopo l'avvio dei contenitori, ma i contenitori continuano a essere eseguiti in background.Il
docker-compose runcomando serve per eseguire attività "una tantum" o "ad hoc". Richiede il nome del servizio che si desidera eseguire e avvia i contenitori solo per i servizi da cui dipende il servizio in esecuzione. Utilizzarerunper eseguire test o eseguire un'attività amministrativa come la rimozione o l'aggiunta di dati a un contenitore di volumi di dati. Ilruncomando si comporta comedocker run -tise aprisse un terminale interattivo al contenitore e restituisse uno stato di uscita corrispondente allo stato di uscita del processo nel contenitore.Il
docker-compose startcomando è utile solo per riavviare contenitori che erano stati precedentemente creati, ma erano stati arrestati. Non crea mai nuovi contenitori.