Docker: Volumi

Come mantenere i dati dei tuoi container con i volumi Docker

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione Docker cloud CaaS (Containers as a Service) pronta all'uso che fornisce numerosi vantaggi, tra cui:

  • Distribuisci facilmente i tuoi container in produzione con un semplice docker-compose up.
  • Nome di dominio personalizzabile protetto con HTTPS (ad esempio, https://api.tua-azienda.com, https://www.tua-azienda.com, https://backoffice.tua-azienda.com).
  • Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.
  • Aggiornamenti senza sforzo con un solo clic.

Risparmia tempo e semplifica la tua vita: bastano 5 minuti per provare la soluzione di hosting cloud Docker CaaS di Stackhero e distribuire i tuoi container in produzione!

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 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

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 myVolume
    

    Nota: La rimozione di un volume eliminerà definitivamente tutti i dati memorizzati al suo interno, e non c'è modo di recuperarli successivamente.