C'est exactement pourquoi, lors de la création d'un conteneur de données, j'enregistre toujours son chemin dans un fichier. (voir mon script updateDataContainerPath
)
Utilisation (à utiliser juste après la création d'un conteneur de données) :
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}
(ici ${grepos}
est le fichier où vous enregistrez ou enregistrez le chemin du volume du conteneur de données)
Ce script le fera, s'il y en avait déjà un chemin enregistré pour ce conteneur de données, supprimez le dossier de conteneur de données vide et déplacez l'ancien vers le nouveau (et mettez à jour le nouveau chemin)
sudo rm -Rf "${grpath}"
sudo mv "${fgrpath}" "${grpath}"
Cela aiderait à répondre à votre question 2 et éviterait entièrement votre question 1.
De cette façon, je peux rm n'importe quel conteneur (y compris un conteneur de données, sans le -v
option bien sûr), et je sais que la prochaine fois que je recréerai ce même conteneur de données, je retrouverai mes données.