डॉकटर 1.9.0 और इसके बाद के संस्करण
वॉल्यूम API का उपयोग करें
docker volume create --name hello
docker run -d -v hello:/container/path/for/volume container_image my_command
इसका मतलब है कि डेटा-केवल कंटेनर पैटर्न को नए संस्करणों के पक्ष में छोड़ दिया जाना चाहिए।
वास्तव में वॉल्यूम एपीआई केवल डेटा-कंटेनर पैटर्न को प्राप्त करने का एक बेहतर तरीका है।
यदि आप -v volume_name:/container/fs/path
डॉकटर के साथ एक कंटेनर बनाते हैं, तो स्वचालित रूप से आपके लिए एक नामांकित वॉल्यूम बना सकता है:
- के माध्यम से सूचीबद्ध हो
docker volume ls
- के माध्यम से पहचाना जाए
docker volume inspect volume_name
- एक सामान्य निर्देशिका के रूप में समर्थित
- एक
--volumes-from
कनेक्शन के माध्यम से पहले के रूप में समर्थित
नया वॉल्यूम API एक उपयोगी कमांड जोड़ता है जो आपको झूलने वाले संस्करणों की पहचान करने देता है:
docker volume ls -f dangling=true
और फिर इसे इसके नाम के माध्यम से हटा दें:
docker volume rm <volume name>
जैसा कि @mpugach टिप्पणियों में रेखांकित करता है, आप एक अच्छे वन-लाइनर के साथ सभी झूलने वाले संस्करणों से छुटकारा पा सकते हैं:
docker volume rm $(docker volume ls -f dangling=true -q)
# Or using 1.13.x
docker volume prune
डॉकर 1.8.x और नीचे
उत्पादन के लिए सबसे अच्छा काम करने वाला दृष्टिकोण केवल कंटेनर का उपयोग करना है ।
डेटा केवल कंटेनर एक नंगे छवि पर चलाया जाता है और वास्तव में डेटा वॉल्यूम को उजागर करने के अलावा कुछ भी नहीं करता है।
फिर आप किसी अन्य कंटेनर को डेटा कंटेनर वॉल्यूम तक पहुँच के लिए चला सकते हैं:
docker run --volumes-from data-container some-other-container command-to-execute
- यहां आप विभिन्न कंटेनरों को व्यवस्थित करने के तरीके की एक अच्छी तस्वीर प्राप्त कर सकते हैं।
- यहाँ पर अच्छी जानकारी है कि वॉल्यूम कैसे काम करता है।
में इस ब्लॉग पोस्ट एक अच्छा तथाकथित का वर्णन है मात्रा पैटर्न के रूप में कंटेनर जो होने का मुख्य बिंदु को स्पष्ट करता है डेटा केवल कंटेनरों ।
डॉकर प्रलेखन में अब मात्रा / पैटर्न के रूप में कंटेनर का विवरण है ।
निम्नलिखित डॉकर 1.8.x और उससे नीचे के लिए बैकअप / पुनर्स्थापना प्रक्रिया है।
बैकअप:
sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
- --rm: कंटेनर को बाहर निकालें जब वह बाहर निकलता है
- -volumes-DATA से: DATA कंटेनर द्वारा साझा किए गए वॉल्यूम में संलग्न करें
- -v $ (pwd): / backup: बाँध करंट डाइरेक्टरी में कंटेनर को चालू करता है; टार फाइल को लिखने के लिए
- बिजीबॉक्स: एक छोटी सरल छवि - त्वरित रखरखाव के लिए अच्छा है
- tar cvf /backup/backup.tar / data: / data directory में सभी फ़ाइलों का एक असंपीड़ित tar फ़ाइल बनाता है
पुनर्स्थापित करें:
# Create a new data container
$ sudo docker run -v /data -name DATA2 busybox true
# untar the backup files into the new container᾿s data volume
$ sudo docker run --rm --volumes-from DATA2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
data/
data/sven.txt
# Compare to the original container
$ sudo docker run --rm --volumes-from DATA -v `pwd`:/backup busybox ls /data
sven.txt
यहां उत्कृष्ट ब्रायन गोफ का एक अच्छा लेख बताया गया है कि कंटेनर और डेटा कंटेनर के लिए एक ही छवि का उपयोग करना क्यों अच्छा है।