मुझे अपना जवाब जोड़ने दें, क्योंकि मेरा मानना है कि दूसरों को डॉकटर की बात याद आ रही है।
का उपयोग करते हुए VOLUME
Dockerfile में सही तरीका ™ है, क्योंकि आपने Docker को बताया कि एक निश्चित निर्देशिका में स्थायी डेटा होता है। डॉकर उस डेटा के लिए एक वॉल्यूम बनाएगा और इसे कभी भी डिलीट नहीं करेगा, भले ही आप इसका इस्तेमाल करने वाले सभी कंटेनरों को हटा दें।
यह यूनियन फाइल सिस्टम को भी बायपास करता है, ताकि वॉल्यूम वास्तव में एक वास्तविक निर्देशिका हो जो इसे साझा करने वाले सभी कंटेनरों में सही जगह पर (रीड-राइट या रीडोनली) माउंट हो जाए।
अब, होस्ट से उस डेटा तक पहुंचने के लिए, आपको केवल अपने कंटेनर का निरीक्षण करना होगा:
# docker inspect myapp
[{
.
.
.
"Volumes": {
"/var/www": "/var/lib/docker/vfs/dir/b3ef4bc28fb39034dd7a3aab00e086e6...",
"/var/cache/nginx": "/var/lib/docker/vfs/dir/62499e6b31cb3f7f59bf00d8a16b48d2...",
"/var/log/nginx": "/var/lib/docker/vfs/dir/71896ce364ef919592f4e99c6e22ce87..."
},
"VolumesRW": {
"/var/www": false,
"/var/cache/nginx": true,
"/var/log/nginx": true
}
}]
मैं आमतौर पर कुछ मानक जगह जैसे कि / srv में सिमिलिंक बनाता हूं, ताकि मैं वॉल्यूम तक आसानी से पहुंच सकूं और उनमें मौजूद डेटा का प्रबंधन कर सकूं (केवल उन संस्करणों के लिए जिन्हें आप परवाह करते हैं):
ln -s /var/lib/docker/vfs/dir/b3ef4bc28fb39034dd7a3aab00e086e6... /srv/myapp-www
ln -s /var/lib/docker/vfs/dir/71896ce364ef919592f4e99c6e22ce87... /srv/myapp-log