Docker: Non utilizzare i bind mount di Docker

Questa documentazione fa parte della guida Volumi. Consulta la guida completa qui: 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.

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