అప్రమేయంగా, డాకర్ కంటైనర్లు పూర్తిగా స్థితిలేనివి. కంటైనర్‌లో నిల్వ చేసిన డేటా తాత్కాలికం మరియు కంటైనర్ షట్ డౌన్ అయినప్పుడు తొలగించబడుతుంది. ఇది చాలా అనువర్తనాలకు అనువైనది కాదు, కాబట్టి డాకర్ రాష్ట్రాన్ని నిర్వహించడానికి కొన్ని మార్గాలను అందిస్తుంది.

వాల్యూమ్‌లు ఏమిటి?

డాకర్ డేటాను కొనసాగించడానికి సులభమైన మార్గం మద్దతులను కట్టండి, ఇది హోస్ట్ డిస్క్‌లోని స్థానాన్ని కంటైనర్ డిస్క్‌లోని స్థానానికి అక్షరాలా బంధిస్తుంది. ఇవి సృష్టించడానికి మరియు ఉపయోగించడానికి చాలా సులభం, కానీ మీరు డైరెక్టరీలను సెటప్ చేసి వాటిని మీరే నిర్వహించాల్సిన అవసరం ఉంది.

వాల్యూమ్‌లు డాకర్ చేత నిర్వహించబడే వర్చువల్ హార్డ్ డిస్క్‌ల వంటివి. డాకర్ డిస్క్ నిల్వను నిర్వహిస్తుంది (సాధారణంగా లో /var/lib/docker/volumes/) మరియు వారికి డైరెక్టరీ మార్గానికి బదులుగా ఒకే, సులభంగా గుర్తుండిపోయే పేరును ఇస్తుంది. డాకర్ CLI ని ఉపయోగించి వాటిని సృష్టించడం మరియు తొలగించడం సులభం.

ఇవి డాకర్ చేత నిర్వహించబడుతున్నాయి. అవి లైనక్స్ మరియు విండోస్ కంటైనర్లలో నడుస్తాయి, బహుళ కంటైనర్ల మధ్య మరింత సురక్షితంగా పంచుకోవచ్చు మరియు వాల్యూమ్ డ్రైవర్లు క్లౌడ్ ప్రొవైడర్లను అంతర్లీన డేటా కోసం రిమోట్ హోస్టింగ్ అందించడానికి అనుమతిస్తాయి. మొత్తంమీద, బైండ్ మౌంట్ల కంటే వాల్యూమ్‌లను ఉపయోగించడం సులభం మరియు రాష్ట్ర నిర్వహణ కోసం డాకర్ సిఫార్సు చేస్తారు.

వాస్తవానికి, సర్వర్‌లో నిల్వ చేయడానికి మీకు నిజంగా డాకర్ డేటా అవసరమా అని మీరు పరిగణించాలి. అనేక అనువర్తనాల కోసం, అమెజాన్ ఎస్ 3 లేదా బాహ్య డేటాబేస్ వంటి బాహ్య రిమోట్ డేటా స్టోర్ ఉపయోగించడం వారు ఉపయోగించే డేటాను ఫ్రంటెండ్ సర్వర్‌కు బంధించకుండా నిల్వ చేయడానికి సరిపోతుంది.

మీరు వాటిని ఎలా ఉపయోగిస్తున్నారు?

కింది ఆదేశంతో మీరు కమాండ్ లైన్ నుండి కొత్త వాల్యూమ్‌ను సృష్టించవచ్చు:

docker volume create nginx-config

ఆపై, మీరు మీ డాకర్ కంటైనర్‌ను అమలు చేయడానికి వెళ్ళినప్పుడు, దాన్ని పొడిగింపుతో కంటైనర్‌లోని గమ్యానికి కనెక్ట్ చేయండి --mount జెండా:

docker run -d 
--name devtest 
--mount source=nginx-config,target=/etc/nginx 
nginx:latest

మీరు పరిగెత్తితే docker inspect <name>, మీరు క్రింద జాబితా చేసిన వాల్యూమ్‌ను చూస్తారు Mounts విభాగం.

మీరు డాకర్ కంపోజ్ ఉపయోగిస్తుంటే, సెటప్ కూడా చాలా సులభం. ఫైల్‌ను జోడించండి volumes మీరు కలిగి ఉన్న ప్రతి కంటైనర్ సేవ కోసం ఎంట్రీ, ఆపై అతిథిలోని స్థానానికి వాల్యూమ్ పేరును మ్యాప్ చేయండి. మీరు అధిక స్థాయిలో వాల్యూమ్‌ల జాబితాను కూడా అందించాల్సి ఉంటుంది volumes కంపోజ్ కోసం కీ అందించాలి.

version: "3.0"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - nginx-config:/etc/nginx/
volumes:
  nginx-config:

ఇది స్వయంచాలకంగా ఈ కూర్పు కోసం వాల్యూమ్‌ను సృష్టిస్తుంది. మీరు కంపోజ్ వెలుపల నుండి డిఫాల్ట్ వాల్యూమ్‌ను ఉపయోగించాలనుకుంటే, పేర్కొనండి external: true వాల్యూమ్ కాన్ఫిగరేషన్‌లో:

volumes:
  cms-content:
    external: true

మీరు మౌంట్‌ను బంధించాలనుకుంటే మరియు వాల్యూమ్‌ల గురించి ఆందోళన చెందకపోతే, వాల్యూమ్ పేరుకు బదులుగా ఒక మార్గం పేరును నమోదు చేయండి మరియు వాల్యూమ్ పేర్లను నిర్వచించడం మానుకోండి.

version: "3.0"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - /docker/nginx-config/:/etc/nginx/

మీ వినియోగ సందర్భానికి ఇంతకన్నా ప్రత్యేకమైనది అవసరమైతే కంపోజ్‌తో వాల్యూమ్‌లను ఉపయోగించడంపై మీరు డాకర్ యొక్క పూర్తి డాక్యుమెంటేషన్ చదవవచ్చు.

డాకర్ వాల్యూమ్ బదిలీ

డాకర్ వాల్యూమ్‌లు స్వయంచాలకంగా సృష్టించబడిన మరియు నిల్వ చేయబడిన ఫోల్డర్‌లు /var/lib/docker/volumes/, ప్రతి వాల్యూమ్‌లో నిల్వ చేయబడుతుంది ./volumename/_data/. బ్యాకప్ చేయడానికి మరియు పునరుద్ధరించడానికి, మీరు ఈ వాల్యూమ్‌లను నేరుగా బ్యాకప్ చేయవచ్చు.

మీరు బదులుగా డాకర్ CLI ని ఉపయోగించాలనుకుంటే, దురదృష్టవశాత్తు వారు దీన్ని చేయడానికి సులభమైన మార్గాన్ని అందించరు. కంటైనర్ యొక్క వాల్యూమ్‌లను బ్యాకప్ చేయడానికి, మీకు కంటైనర్ పేరు మరియు డేటా నిల్వ చేయబడిన మౌంట్ స్థానం అవసరం.

దీన్ని చేయటానికి మార్గం కొంచెం ఉపాయమే – మీరు క్రొత్త డాకర్ కంటైనర్‌లో ఒక ఆదేశాన్ని అమలు చేయాలి, ప్రస్తుత షెల్ డైరెక్టరీని మౌంట్ చేయండి, ఆ కంటైనర్‌పై వాల్యూమ్‌ను మౌంట్ చేయండి, ఆపై tar బ్యాకప్‌లోని డైరెక్టరీ. మీరు a తో ముగుస్తుంది backup.tar వాల్యూమ్:

docker run --rm --volumes-from containername -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /mountlocation

అప్పుడు, అదే విధంగా, మీరు ఆర్కైవ్‌ను గమ్యం డైరెక్టరీకి సేకరించవచ్చు:

docker run --rm --volumes-from containername -v $(pwd):/backup ubuntu bash -c "cd /mountlocation && tar xvf /backup/backup.tar --strip 1"

ఏమైనప్పటికీ హోస్ట్ యొక్క స్థానాన్ని తెలుసుకోవడం కంటే ఇది మంచిది, కాబట్టి మీకు కావాలంటే దాన్ని ఆటోమేట్ చేయవచ్చు.

Source link