immagine illustrativa di una balena che sbuffa acqua davanti alla scrivania di un programmatore
Home » Docker, come spostare immagini e volumi?

Docker, come spostare immagini e volumi?

Illustrazione ottocentesca della Pesca della balena. Un modo antico di gestire il caro Docker.
Whale fishery: attacking a right da Library of Congress in licenza CC-CC0 1.0

L’uso quotidiano di Docker come ambiente di sviluppo crea, oltre a notevoli vantaggi, un grosso problema: l’esaurimento veloce dello spazio a disposizione.

Il mio hard disk SSD si è infatti saturato dopo la Dockerizzazione di una decina di progetti. Tra volumi e immagini docker è arrivato ad occuparmi 20 giga; questo ha lasciato solo 3 giga di spazio residuo.

Per un nuovo progetto devo importare un backup di Mongo di 10 giga. Chiaramente questo risulta impossibile allo stato attuale.
Ho quindi dovuto trovare una soluzione veloce e semplice al problema. La soluzione al problema è stato spostare sull’hard disk secondario il materiale che Docker va a creare nei nostri hd.

Come si spostano i file di Docker senza perdere tutti i dati locali?

I passaggi che ho seguito sulla mia macchina di sviluppo (sistema operativo Ubuntu / PopOs) sono:

1. Fermare il servizio

sudo service docker stop

2. Aggiungere un file di configurazione per dire a Docker dove salvare i file

Creare il file /etc/docker/daemon.json e indicare la destinazione preferita ponendo il percorso accanto alla chiave graph.
L’esempio qui sotto posiziona il contenuto dei file generati da Docker all’interno di un generico hard disk chiamato hd-esterno.

{ 
   "graph": "/hd-esterno/docker" 
}

3. Spostare i file di docker nella nuova cartella

Ho spostato i file nell’hd esterno col comando rsync.

sudo rsync -aP /var/lib/docker/ /hd-esterno/docker

4. Riavviare il servizio

sudo service docker start

Dopo aver verificato il corretto funzionamento e aggiornamento dei dati è possibile procedere con la cancellazione dell’ormai vecchio archivio.

5. Verificare il corretto funzionamento e cancellare i vecchi dati

sudo rm -rf /var/lib/docker.old

A questo punto si potrà tornare ad usare docker serenamente. Nel mio caso potrò tornare a sviluppare utilizzando il famoso backup di 10 giga.

La individuazione di questa semplice e serena procedura è frutto in buona parte della lettura di questo articolo: How to move docker data directory to another location on Ubuntu di Augusto Destrero.


Pubblicato

in

da

Tag:

Commenti

Rispondi