Docker Volume Rename - HowTo

Aus Laub-Home Wiki

Benennt man zum Beispiel ein Docker Compose Projekt um, werden somit auch die Volumes, die gemundet werden umbenannt und beim Starten des umbenannten Compose Projektes werden neue Volumes, leere Volumes erstellt. Um die alten weiterverwenden zu können müsset man diese umbenennen. Leider fehlt momentan dem docker volume Befehl eine rename Option. Also so etwas wie docker volume rename old_volume_name new_volume_name. Ich zeige hier dennoch kurz auf, wie man dennoch ein Volume "umbenennen" kann. Oder besser gesagt, wir erstellen ein Neues Volume, kopieren den Inhalt des alten Volumes mittels Docker Volume Clone Script hinein und nachdem alles mit dem neuen Volume wieder läuft, löschen wir das alte Volume.

Als erstes benötigen wir das Docker Volume Clone Script, welches wir unter /usr/local/sbin ablegen.

cd /usr/local/sbin
wget https://raw.githubusercontent.com/alaub81/scripts/master/clone-docker-volumes.sh
chmod +x clone-docker-volumes.sh

Nun fahren wir das gesamte Compose Projekt herunter, der das oder die original Volume/s beinhaltet: via docker compose:

cd /opt/compose_project
docker-compose down

Nun kann man entweder das Compose Projekt umbenennen oder im docker-compose.yml selbst die Volumes Umbenennen. Danach starten wir die Erstellung des neuen Volumes und kopieren den Inhalt des alten hinein:

# zeigt uns alle bereits vorhandenen Volumes an
docker volume ls
# erstellt Volume NEU und kopiert Volume ALT nach Volume NEU
clone-docker-volumes.sh volume_ALT volume_NEU
# Die Frage ob ein volume_NEU erstellt werden soll mit "y" beantworten

Wenn alle Volumes kopiert sind können wir nun das Compose Projekt neu deployen:

docker-compose up -d

nun kann man sich eine Liste der Volumes anzeigen lassen, die keinem laufenden Container zugewiesen sind:

docker volume ls -f dangling=true

wenn nun alles mit dem neuen Volume läuft wie gewünscht, können wir dieses löschen:

docker volume rm volume_ALT

Fertig. Nun haben wir ein umbenanntes Volume!