Dat is precies waarom ik bij het maken van een gegevenscontainer altijd het pad ervan in een bestand registreer. (zie mijn script updateDataContainerPath
)
Gebruik (te gebruiken net na het maken van een gegevenscontainer):
docker inspect ${gitolite_repos_cont} > /dev/null 2>&1 || docker create --name="${gitolite_repos_cont}" gitolite.repos /bin/true
# source the script, to make the updatePath() function available
. ../updateDataContainerPath
# save the path in a file
updatePath ${gitolite_repos_cont} "$HOME/b2d/gitolite" ${grepos}
(hier ${grepos}
is het bestand waarin u zich registreert of het pad van het volume van de gegevenscontainer opslaat)
Dat script zal, als er reeds een pad opgeslagen voor die gegevenscontainer, verwijder de lege gegevenscontainermap en verplaats de oude naar de nieuwe (en werk het nieuwe pad bij)
sudo rm -Rf "${grpath}"
sudo mv "${fgrpath}" "${grpath}"
Dat zou helpen om uw vraag 2 te beantwoorden en uw vraag 1 volledig te vermijden.
Op die manier kan ik elke container rmen (inclusief een datacontainer, zonder de -v
optie natuurlijk), en ik weet dat de volgende keer dat ik diezelfde gegevenscontainer opnieuw maak, ik mijn gegevens terug zal vinden.