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.
👋 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!
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