Facciamo un esempio.Dockerfile: comprensione dell'istruzione VOLUME
Il seguente è l'istruzione VOLUME
per l'immagine del nginx
:
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
Ecco le mie domande:
Quando si avvia il contenitore, si queste directory presentarsi sul mio host? E quando fermerò il mio contenitore, le directory rimarranno?
Se alcune (o tutte) di queste directory esistono già nel mio host, cosa succederà? Ad esempio, supponiamo che l'immagine venga fornita con un file di configurazione predefinito nella directory
/etc/nginx
del contenitore e che disponga anche di un file di configurazione entro/etc/nginx
sul mio host. Quando inizia il contenitore, quale di questi file avrà la priorità?Qual è la differenza principale tra
-v /host/dir:container/dir
eVOLUME
?
Riferimenti:
- https://github.com/dockerfile/nginx/blob/master/Dockerfile
- http://www.tech-d.net/2014/11/03/docker-indepth-volumes/
- How to mount host volumes into docker containers in Dockerfile during build
- http://jpetazzo.github.io/2015/01/19/dockerfile-and-data-in-volumes/
Ben fatto! Oltre al tuo articolo ho trovato la discussione sui volumi a [Container42] (http://container42.com/2014/11/03/docker-indepth-volumes/) da cpuguy83 (Developer at Docker) e la discussione molto dettagliata da [Mark Lamourine] (http://cloud-mechanic.blogspot.de/2014/10/storage-concepts-in-docker.html) come incredibile valore. –
Buona risposta, molto utile. Solo l'output di 'docker inspect' è cambiato dopo la finestra mobile 1.8. Ora puoi trovare le informazioni sui volumi tramite '$ docker inspect -f '{{.Config.Volumes}}' $ ID' e' $ docker inspect -f '{{..}}' $ ID' – gengmao
@gengmao Aggiornato , Grazie. –