यही कारण है कि, डेटा कंटेनर बनाते समय, मैं हमेशा फ़ाइल में अपना पथ पंजीकृत करता हूं। (मेरी स्क्रिप्ट देखें updateDataContainerPath
)
उपयोग (डेटा कंटेनर बनाने के बाद ही उपयोग किया जाना है):
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}
(यहां ${grepos}
वह फ़ाइल है जहाँ आप रजिस्टर करते हैं या डेटा कंटेनर के वॉल्यूम का पथ सहेजते हैं)
यदि पहले से होता तो वह स्क्रिप्ट उस डेटा कंटेनर के लिए सहेजा गया पथ, खाली डेटा कंटेनर फ़ोल्डर निकालें, और पुराने को नए में ले जाएं (और नया पथ अपडेट करें)
sudo rm -Rf "${grpath}"
sudo mv "${fgrpath}" "${grpath}"
यह आपके प्रश्न 2 का उत्तर देने में मदद करेगा, और आपके प्रश्न 1 से पूरी तरह से बच जाएगा।
इस तरह, मैं किसी भी कंटेनर (डेटा कंटेनर सहित, -v
. के बिना rm कर सकता हूं निश्चित रूप से विकल्प), और मुझे पता है कि अगली बार जब मैं उसी डेटा कंटेनर को फिर से बनाऊंगा, तो मुझे अपना डेटा वापस मिल जाएगा।