Data persistence configuration।
Container को rebuild करने से data नहीं जाता — इस step को skip मत करना।
Experience से सीखे हुए lessons
तुमने खुश होकर नया कंटेनर इमेज अपडेट किया, रीस्टार्ट के बाद देखते हो —— कॉन्फ़िगरेशन गायब, डेटा गायब, सब कुछ जीरो पर। यह बग नहीं है, Docker का नॉर्मल बिहेवियर है: कंटेनर टेंपररी होते हैं, डिलीट करो तो कुछ नहीं बचता। तुम परमानेंट स्टोरेज न दो तो Docker अपने आप नहीं देगा।
Solutions
Docker volume mapping से container के important directories को host machine के physical path पर map कर दो। Container को delete-create करते रहो, बस mapped path के files intact रहें, data safe रहेगा। ये Docker का सबसे basic और सबसे important operation है, कोई alternative नहीं।
चार स्टेप में परमानेंट स्टोरेज सेटअप हो जाता है
डायरेक्टरी स्ट्रक्चर बनाओ
NAS पर data directory बना दो। Directory structure साफ हो तो बाद मे backup और migration आसान हो जाता है। बेहतर है कि data, config, logs, memory ये चार subdirectories बना लो।
Volume को container मे map करना।
docker-compose.yml या Docker management interface मे host machine की directory को container के अंदर वाली path से map कर दो। Map करने के बाद container जो data लिखेगा वो दरअसल NAS hard drive पर save होगा।
Set up scheduled backup
Data तो NAS पर है ही, पर RAID तुम्हारे accidentally delete को नहीं रोक सकता। एक simple backup script लिखो, cron से regularly चलाओ, एक extra layer की safety मिल जाएगी।
Verify recovery process
बैकअप लो पर टेस्ट मत भूलो। कंटेनर डिलीट करके फिर से बनाओ, डेटा अभी है या नहीं, कॉन्फ़िगरेशन काम कर रही है या नहीं, सर्विस सही से शुरु हो रही है या नहीं - यह सब चेक करो। अगर असली बुरे वक़्त में बैकअप खराब निकले तो बहुत देर हो जाएगी।
Volume मैपिंग उदाहरण
नीचे रिकमेंडेड डायरेक्टरी स्ट्रक्चर और मैपिंग तरीका दिया है, सभी NAS जैसे Synology, QNAP, Unraid के लिए:
services:
Automated backup script
एक स्क्रिप्ट लिख दो, रोज़ बैकअप बना दो। पिछले 7 दिन रखो, पुराने ऑटो-डिलीट करो:
#!/bin/bash
Scheduled task configuration।
Backup script को cron मे add कर दो, हर दिन रात को 3 बजे automatically चले:
# crontab संपादित करें
Advanced backup solution
अगर data security को लेकर ज्यादा चिंता है तो advanced backup tutorial देख लो, वहाँ incremental backup, encrypted backup, cloud sync वगैरह का तरीका बता रखा है: