Come un'altra risposta e hai affermato che i volumi non possono essere impegnati e i contenitori figlio ereditano in effetti le definizioni di volume dai genitori. Pertanto, qualsiasi modifica al volume verrà annullata. Vorrei aggiungere dati come i file di database mysql dovrebbero sempre essere in volumi per diversi motivi e non dovresti provare a commetterli nella tua immagine.
- Se devi migrare i contenitori, non esiste un modo semplice per estrarre i dati dai contenitori se non si trovano in un volume.
- Se vuoi avviare più contenitori che condividono i dati, devi avere i dati in un volume.
- Se vuoi modificare la definizione del tuo container con, ad esempio, nuovi volumi o porte, devi eliminarlo e ricrearlo. Se hai dati nel contenitore, li perderai. (Vedi questa domanda per un esempio di questo caso.)
- Il file system union è più lento dei normali file system, il che rallenterà l'applicazione o il database.
Allora cosa dovresti fare invece?
- Utilizzare un contenitore di soli dati che può essere collegato a qualsiasi istanza del contenitore di servizi. Quindi puoi utilizzare i volumi da per ottenere i tuoi dati nel contenitore del servizio.
- Utilizza un volume montato dall'host in modo da poter riavviare i container e montare la stessa posizione in nuovi container.