Docker Volume Rename - HowTo
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!