Docker: Volumi
Come mantenere i dati dei tuoi container con i volumi Docker
Benvenuto nella documentazione di Stackhero
Stackhero offre una piattaforma Docker cloud CaaS (Containers as a Service) pronta all'uso, progettata per un deployment di container veloce e affidabile:
- Effettua il deployment in produzione con un semplice
docker-compose up. Nessuna configurazione aggiuntiva: avvia semplicemente i tuoi container.- Scegli il tuo nome di dominio, automaticamente protetto con HTTPS (ad esempio: https://api.tua-azienda.com, https://www.tua-azienda.com oppure https://backoffice.tua-azienda.com).
- Approfitta di elevate prestazioni e sicurezza avanzata su un'infrastruttura privata e dedicata.
- Applica gli aggiornamenti con un solo clic per una manutenzione semplice e senza sforzo.
I tuoi container possono essere operativi in produzione in circa cinque minuti. Stackhero gestisce per te infrastruttura, aggiornamenti e sicurezza, così puoi concentrarti sullo sviluppo delle tue applicazioni. Scopri di più sull'hosting cloud Docker CaaS.
Per progettazione, i container Docker sono effimeri. Ciò significa che qualsiasi dato memorizzato direttamente al loro interno verrà perso quando il container verrà rimosso o sostituito da un'altra istanza. Per garantire la persistenza dei dati, i volumi Docker sono l'approccio consigliato.
Non utilizzare i bind mount di Docker
Non utilizzare i bind mount su Stackhero. Optare sempre per i volumi Docker per evitare la perdita di dati.
I bind mount comportano il collegamento di una directory dalla VM host di Stackhero a un container. Tuttavia, se si fa affidamento sui bind mount, l'aggiornamento della propria istanza Stackhero for Docker comporterà la perdita di tutti i dati memorizzati in questo modo.
I bind mount sono comunemente specificati nel comando docker run con una sintassi come -v /myDirectory:/mnt (nota il / iniziale). Nei file Docker Compose, appaiono come volumes: /myDirectory:/mnt. Vietare queste configurazioni o si perderanno i dati.
Invece, utilizzare i volumi Docker, che sono gestiti da Docker e non fanno riferimento a percorsi assoluti.
Per riassumere:
Approccio errato:
docker run -it -v /myDirectory:/mnt alpine
Approccio corretto:
docker volume create myVolume
docker run -it -v myVolume:/mnt alpine
Quando si lavora con i file Docker Compose:
Configurazione errata:
services:
myService:
image: alpine
volumes:
- /myDirectory:/mnt
Configurazione corretta:
services:
myService:
image: alpine
volumes:
- myVolume:/mnt
volumes:
myVolume:
name: myVolume
Comandi utili per i volumi Docker
Ecco un rapido riferimento per gestire i volumi Docker:
-
Per creare un nuovo volume chiamato
myVolume, eseguire:docker volume create myVolume -
Per elencare tutti i volumi esistenti:
docker volume ls -
Per rimuovere un volume specifico chiamato
myVolume:docker volume rm myVolumeNota: La rimozione di un volume eliminerà definitivamente tutti i dati memorizzati al suo interno, e non c'è modo di recuperarli successivamente.