Ho un Dockerfile che indica al termine di un volume in questo modoCome riutilizzare lo stesso volume in Docker quando si riavvia un contenitore?
VOLUME /data
Ora, quando ho costruire e gestire il contenitore ho davvero ottenere un nuovo volume creato e montato in /data
.
Questo è molto buono, ma mi piacerebbe essere in grado di fermare questo contenitore e quindi eseguirlo di nuovo e assicurarsi che lo stesso volume con i suoi dati sia montato di nuovo.
Come posso ottenere quello?
Idealmente lo stesso comando creerebbe il volume se non esiste già e lo riutilizzerà se già esiste.
Ho testato questa procedura (sul contenitore del volume di dati) e funziona come previsto. Ma quello che non capisco è che funziona anche * senza * fornendo un'istruzione VOLUME nel Dockerfile! Allora qual è lo scopo dell'istruzione VOLUME? –
@BarryNL I volumi possono essere definiti in Dockerfile o usando 'docker run -v'. Se il volume è stato specificato in Dockerfile, il percorso locale è in genere simile a '/ var/lib/docker/vfs/...'. Puoi usare 'docker inspect -f {{.Volumes}} name' per scoprirlo. Tuttavia, ci sono differenze tra i volumi Dockerfile e 'run -v'-volumi. Se l'immagine di base del contenitore contiene dati nel punto di montaggio specificato, i dati esistenti vengono copiati nel nuovo volume al momento dell'inizializzazione del volume, ma solo se si tratta di un volume di Dockerfile. – fnkr