నేను నిజంగా అంశానికి నేరుగా వెళ్లాలనుకుంటున్నాను, కానీ నా కథ గురించి కొంచెం చెప్పడం మరింత సరైనది:
ఎంట్రీ
నేను సర్వర్లో ఫ్రంటెండ్ సింగిల్ పేజీ అప్లికేషన్లు, స్కాలా/జావా మరియు నోడెజ్లను అభివృద్ధి చేయడంలో అనుభవం ఉన్న ప్రోగ్రామర్ని.
చాలా కాలం పాటు (ఖచ్చితంగా ఒక జంట లేదా మూడు సంవత్సరాలు), డాకర్ స్వర్గం నుండి వచ్చిన మన్నా అని మరియు సాధారణంగా చాలా కూల్ టూల్ అని మరియు ఖచ్చితంగా ప్రతి డెవలపర్ దానిని ఉపయోగించగలరని నేను అభిప్రాయపడ్డాను. మరియు దీని నుండి ప్రతి డెవలపర్ వారి స్థానిక మెషీన్లో డాకర్ని ఇన్స్టాల్ చేసి ఉండాలి. నా అభిప్రాయం గురించి ఏమిటి, అదే hhలో పోస్ట్ చేయబడిన ఖాళీలను చూడండి. ప్రతి సెకనులో డాకర్ ప్రస్తావన ఉంటుంది మరియు మీరు దానిని కలిగి ఉంటే, ఇది మీ పోటీ ప్రయోజనం అవుతుంది 😉
నా మార్గంలో, నేను డాకర్ మరియు దాని పర్యావరణ వ్యవస్థ పట్ల భిన్నమైన వైఖరితో చాలా మంది వ్యక్తులను కలిశాను. ఇది క్రాస్-ప్లాట్ఫారమ్ కార్యాచరణకు హామీ ఇచ్చే అనుకూలమైన విషయం అని కొందరు చెప్పారు. కంటెయినర్లలో ఎందుకు నడపాలి, దానివల్ల ఏం లాభం వస్తుందో రెండోవాళ్ళకి అర్థం కాలేదు, మూడోవాడు అస్సలు పట్టించుకోలేదు, ఇబ్బంది పెట్టలేదు (కోడ్ రాసుకుని ఇంటికి వెళ్ళిపోయాను - నాకు అసూయ. మార్గం :)
ఉపయోగం కోసం కారణాలు
నేను డాకర్ని ఎందుకు ఉపయోగించాను? బహుశా ఈ క్రింది కారణాల వల్ల:
డేటాబేస్ ప్రారంభం, 99% అప్లికేషన్లు వాటిని ఉపయోగిస్తాయి
ఫ్రంటెండ్ పంపిణీ కోసం nginxని ప్రారంభించడం మరియు బ్యాకెండ్కు ప్రాక్సీ చేయడం
మీరు అప్లికేషన్ను డాకర్ ఇమేజ్లో ప్యాక్ చేయవచ్చు, ఈ విధంగా డాకర్ ఉన్న చోట నా అప్లికేషన్ పని చేస్తుంది, పంపిణీ సమస్య వెంటనే పరిష్కరించబడుతుంది
సేవా ఆవిష్కరణ పెట్టె వెలుపల, మీరు మైక్రోసర్వీస్లను సృష్టించవచ్చు, ప్రతి కంటైనర్ (సాధారణ నెట్వర్క్కి కనెక్ట్ చేయబడింది) మారుపేరు ద్వారా మరొకదానిని సులభంగా చేరుకోవచ్చు, చాలా సౌకర్యవంతంగా ఉంటుంది
ఒక కంటైనర్ను సృష్టించడం మరియు దానిలో "ప్లే" చేయడం సరదాగా ఉంటుంది.
డాకర్ గురించి నేను ఎప్పుడూ ఇష్టపడనిది:
నా అప్లికేషన్ పని చేయడానికి, నాకు సర్వర్లో డాకర్ అవసరం. నా అప్లికేషన్లు jre లేదా nodejsలో రన్ అవుతుంటే మరియు వాటి పర్యావరణం ఇప్పటికే సర్వర్లో ఉంటే నాకు ఇది ఎందుకు అవసరం?
నేను రిమోట్ సర్వర్లో స్థానికంగా నిర్మించిన నా (ప్రైవేట్) చిత్రాన్ని అమలు చేయాలనుకుంటే, నాకు నా స్వంత డాకర్ రిపోజిటరీ అవసరం, ఎక్కడో పని చేయడానికి నాకు రిజిస్ట్రీ అవసరం మరియు నేను httpsని కూడా కాన్ఫిగర్ చేయాలి, ఎందుకంటే డాకర్ క్లి https ద్వారా మాత్రమే పని చేస్తుంది. అయ్యో... చిత్రాన్ని స్థానికంగా సేవ్ చేయడానికి ఎంపికలు ఉన్నాయి docker save మరియు కేవలం scp ద్వారా చిత్రాన్ని పంపండి... కానీ అది చాలా శరీర కదలికలు. అంతేకాకుండా, మీ స్వంత రిపోజిటరీ కనిపించే వరకు ఇది "క్రచ్" పరిష్కారం వలె కనిపిస్తుంది
docker-compose. కంటైనర్లను నడపడానికి మాత్రమే ఇది అవసరం. అంతే. అతను వేరే ఏమీ చేయలేడు. Docker-compose దాని ఫైల్ల సంస్కరణల సమూహాన్ని కలిగి ఉంది, దాని స్వంత సింటాక్స్. ఇది ఎంత డిక్లరేటివ్ అయినా, నేను వారి డాక్యుమెంటేషన్ చదవకూడదనుకుంటున్నాను. నాకు అది మరెక్కడా అవసరం లేదు.
బృందంలో పని చేస్తున్నప్పుడు, చాలా మంది వ్యక్తులు డాకర్ఫైల్ను చాలా వంకరగా వ్రాస్తారు, అది ఎలా కాష్ చేయబడిందో అర్థం చేసుకోలేరు, చిత్రానికి అవసరమైన మరియు అవసరం లేని ప్రతిదాన్ని జోడించండి, డాకర్హబ్ లేదా ప్రైవేట్ రిపోజిటరీలో లేని చిత్రాల నుండి వారసత్వంగా పొందండి, కొన్నింటిని సృష్టించండి docker-compose డేటాబేస్లతో ఫైల్లు మరియు ఏదీ కొనసాగదు. అదే సమయంలో, డెవలపర్లు డాకర్ చల్లగా ఉన్నారని, ప్రతిదీ స్థానికంగా పని చేస్తుందని గర్వంగా ప్రకటిస్తారు మరియు HR ముఖ్యంగా ఖాళీలో ఇలా వ్రాస్తుంది: "మేము డాకర్ని ఉపయోగిస్తాము మరియు మాకు అలాంటి పని అనుభవం ఉన్న అభ్యర్థి కావాలి."
డాకర్లో ప్రతిదాన్ని పెంచడం గురించిన ఆలోచనలు నన్ను నిరంతరం వెంటాడుతూనే ఉంటాయి: postgresql, kafka, redis. ప్రతిదీ కంటైనర్లలో పనిచేయదు, ప్రతిదీ కాన్ఫిగర్ చేయడం మరియు అమలు చేయడం సులభం కాదు. దీనికి థర్డ్-పార్టీ డెవలపర్లు మద్దతు ఇస్తారు మరియు విక్రేతల ద్వారా కాదు. మరియు మార్గం ద్వారా, ప్రశ్న వెంటనే తలెత్తుతుంది: విక్రేతలు తమ ఉత్పత్తులను డాకర్లో నిర్వహించడం గురించి చింతించరు, ఇది ఎందుకు, బహుశా వారికి ఏదైనా తెలుసా?
కంటైనర్ డేటా యొక్క నిలకడ గురించి ఎల్లప్పుడూ ప్రశ్న తలెత్తుతుంది. ఆపై మీరు అనుకుంటున్నారు, నేను హోస్ట్ డైరెక్టరీని మౌంట్ చేయాలా లేదా డాకర్ వాల్యూమ్ను సృష్టించాలా లేదా ఇప్పుడు ఉన్న డేటా కంటైనర్ను తయారు చేయాలా deprecated? నేను డైరెక్టరీని మౌంట్ చేస్తే, కంటైనర్లోని వినియోగదారు యొక్క uid మరియు gid, కంటైనర్ను ప్రారంభించిన వినియోగదారు యొక్క idతో సరిపోలుతున్నాయని నేను నిర్ధారించుకోవాలి, లేకపోతే కంటైనర్ ద్వారా సృష్టించబడిన ఫైల్లు రూట్ హక్కులతో సృష్టించబడతాయి. నేను ఉపయోగిస్తే volume అప్పుడు డేటా కొన్నింటిలో సృష్టించబడుతుంది /usr/* మరియు మొదటి సందర్భంలో వలె uid మరియు gidతో అదే కథ ఉంటుంది. మీరు థర్డ్-పార్టీ కాంపోనెంట్ను ప్రారంభిస్తుంటే, మీరు డాక్యుమెంటేషన్ని చదవాలి మరియు ప్రశ్నకు సమాధానం కోసం వెతకాలి: "ఏ కంటైనర్ డైరెక్టరీలలో భాగం ఫైల్లను వ్రాస్తుంది?"
నేను చాలా సేపు డాకర్తో టింకర్ చేయవలసి రావడం నాకు ఎప్పుడూ నచ్చలేదు ప్రారంభ దశలో: నేను కంటైనర్లను ఎలా లాంచ్ చేయాలి, ఏ చిత్రాల నుండి లాంచ్ చేయాలి, లాంగ్ డాకర్ కమాండ్లకు మారుపేర్లను కలిగి ఉండే మేక్ఫైల్లను తయారు చేసాను. నేను డాకర్-కంపోజ్ని అసహ్యించుకున్నాను ఎందుకంటే నేను డాకర్ ఎకోసిస్టమ్లో మరొక సాధనాన్ని నేర్చుకోవాలనుకోలేదు. మరియు docker-compose up ఇది నన్ను బాధించింది, ముఖ్యంగా వారు అక్కడ కలుసుకున్నట్లయితే build నిర్మాణాలు, ఇప్పటికే అసెంబుల్ చేసిన చిత్రాల కంటే. నేను నిజంగా కోరుకునేది కేవలం సమర్ధవంతంగా మరియు త్వరగా ఉత్పత్తిని తయారు చేయడమే. కానీ నేను డాకర్ని ఎలా ఉపయోగించాలో గుర్తించలేకపోయాను.
అన్సిబుల్ని పరిచయం చేస్తున్నాము
ఇటీవల (మూడు నెలల క్రితం), నేను DevOps బృందంతో పనిచేశాను, దాదాపు ప్రతి సభ్యుడు డాకర్ పట్ల ప్రతికూల వైఖరిని కలిగి ఉన్నారు. కారణాల కోసం:
డాకర్ నియమాలు iptables (మీరు దీన్ని daemon.jsonలో నిలిపివేయవచ్చు)
డాకర్ బగ్గీ మరియు మేము దానిని ఉత్పత్తిలో అమలు చేయము
డాకర్ డెమోన్ క్రాష్ అయితే, ఇన్ఫ్రాస్ట్రక్చర్ ఉన్న అన్ని కంటైనర్లు తదనుగుణంగా క్రాష్ అవుతాయి
డాకర్ అవసరం లేదు
Ansible మరియు వర్చువల్ మిషన్లు ఉంటే ఎందుకు డాకర్
అదే ఉద్యోగంలో, నేను మరొక సాధనంతో పరిచయం అయ్యాను - అన్సిబుల్. నేను దాని గురించి ఒకసారి విన్నాను, కానీ నా స్వంత ప్లేబుక్స్ వ్రాయడానికి ప్రయత్నించలేదు. ఇప్పుడు నేను నా పనులను రాయడం ప్రారంభించాను మరియు నా దృష్టి పూర్తిగా మారిపోయింది! ఎందుకంటే నేను గ్రహించాను: Ansible అదే డాకర్ కంటైనర్లు, ఇమేజ్ బిల్డ్లు, నెట్వర్క్లు మొదలైనవాటిని అమలు చేయడానికి మాడ్యూల్లను కలిగి ఉంది మరియు కంటైనర్లను స్థానికంగా మాత్రమే కాకుండా రిమోట్ సర్వర్లలో కూడా అమలు చేయవచ్చు! నా ఆనందానికి అవధులు లేవు - నేను ఒక సాధారణ సాధనాన్ని కనుగొన్నాను మరియు నా మేక్ఫైల్ మరియు డాకర్-కంపోజ్ ఫైల్లను విసిరివేసాను, అవి యామల్ టాస్క్లతో భర్తీ చేయబడ్డాయి. వంటి నిర్మాణాలను ఉపయోగించడం ద్వారా కోడ్ తగ్గించబడింది loop, when, మొదలైనవి
డేటాబేస్ల వంటి మూడవ పక్ష భాగాలను అమలు చేయడానికి డాకర్
నాకు ఇటీవలే ssh టన్నెల్స్తో పరిచయం ఏర్పడింది. రిమోట్ సర్వర్ యొక్క పోర్ట్ను స్థానిక పోర్ట్కు "ఫార్వార్డ్" చేయడం చాలా సులభం అని తేలింది. రిమోట్ సర్వర్ క్లౌడ్లోని మెషీన్ కావచ్చు లేదా వర్చువల్బాక్స్లో నడుస్తున్న వర్చువల్ మెషీన్ కావచ్చు. నా సహోద్యోగికి లేదా నాకు డేటాబేస్ (లేదా ఏదైనా ఇతర మూడవ పక్ష భాగం) అవసరమైతే, మేము ఈ భాగంతో సర్వర్ను ప్రారంభించవచ్చు మరియు సర్వర్ అవసరం లేనప్పుడు దాన్ని ఆఫ్ చేయవచ్చు. పోర్ట్ ఫార్వార్డింగ్ డాకర్ కంటైనర్లో నడుస్తున్న డేటాబేస్ వలె అదే ప్రభావాన్ని ఇస్తుంది.
ఈ ఆదేశం నా లోకల్ పోర్ట్ను postgresql నడుస్తున్న రిమోట్ సర్వర్కి ఫార్వార్డ్ చేస్తుంది:
రిమోట్ సర్వర్ని ఉపయోగించడం జట్టు అభివృద్ధితో సమస్యను పరిష్కరిస్తుంది. అటువంటి సర్వర్ను ఒకేసారి అనేక డెవలపర్లు ఉపయోగించవచ్చు; వారు postgresqlని కాన్ఫిగర్ చేయాల్సిన అవసరం లేదు, డాకర్ మరియు ఇతర చిక్కులను అర్థం చేసుకోలేరు. రిమోట్ సర్వర్లో, నిర్దిష్ట సంస్కరణను ఇన్స్టాల్ చేయడం కష్టమైతే, మీరు అదే డేటాబేస్ను డాకర్లోనే ఇన్స్టాల్ చేయవచ్చు. డెవలపర్లకు కావలసిందల్లా ssh యాక్సెస్ను అందించడమే!
SSH సొరంగాలు సాధారణ VPN యొక్క పరిమిత కార్యాచరణ అని నేను ఇటీవల చదివాను! మీరు కేవలం OpenVPN లేదా ఇతర VPN ఇంప్లిమెంటేషన్లను ఇన్స్టాల్ చేయవచ్చు, మౌలిక సదుపాయాలను సెటప్ చేసి డెవలపర్లకు ఉపయోగం కోసం ఇవ్వవచ్చు. ఇది చాలా బాగుంది!
అదృష్టవశాత్తూ, AWS, GoogleCloud మరియు ఇతరులు మీకు ఒక సంవత్సరం ఉచిత వినియోగాన్ని అందిస్తారు, కాబట్టి వాటిని ఉపయోగించండి! ఉపయోగంలో లేనప్పుడు వాటిని ఆపివేస్తే అవి చౌకగా ఉంటాయి. నాకు gcloud వంటి రిమోట్ సర్వర్ ఎందుకు అవసరం అని నేను ఎప్పుడూ ఆలోచిస్తున్నాను, నేను వాటిని కనుగొన్నట్లు అనిపిస్తుంది.
స్థానిక వర్చువల్ మెషీన్గా, మీరు అదే ఆల్పైన్ను ఉపయోగించవచ్చు, ఇది డాకర్ కంటైనర్లలో చురుకుగా ఉపయోగించబడుతుంది. బాగా, లేదా మెషిన్ వేగంగా బూట్ చేయడానికి కొన్ని ఇతర తేలికపాటి పంపిణీలు.
బాటమ్ లైన్: మీరు రిమోట్ సర్వర్లలో లేదా వర్చువల్బాక్స్లో డేటాబేస్లు మరియు ఇతర ఇన్ఫ్రాస్ట్రక్చర్ గుడ్డీలను అమలు చేయవచ్చు మరియు అమలు చేయాలి. ఈ ప్రయోజనాల కోసం నాకు డాకర్ అవసరం లేదు.
డాకర్ చిత్రాలు మరియు పంపిణీ గురించి కొంచెం
నేను ఇప్పటికే వ్రాసాను వ్యాసం దీనిలో నేను డాకర్ చిత్రాలను ఉపయోగించడం ఎటువంటి హామీని అందించదని తెలియజేయాలనుకుంటున్నాను. డాకర్ కంటైనర్ను రూపొందించడానికి మాత్రమే డాకర్ చిత్రాలు అవసరం. మీరు డాకర్ ఇమేజ్కి అప్గ్రేడ్ చేస్తుంటే, మీరు డాకర్ కంటైనర్లను ఉపయోగించడానికి అప్గ్రేడ్ చేస్తున్నారు మరియు మీరు వాటిని మాత్రమే ఉపయోగిస్తారు.
సాఫ్ట్వేర్ డెవలపర్లు తమ ఉత్పత్తులను డాకర్ ఇమేజ్లో మాత్రమే పోర్ట్ చేయడం ఎక్కడైనా చూశారా?
చాలా ఉత్పత్తుల ఫలితం నిర్దిష్ట ప్లాట్ఫారమ్ కోసం బైనరీ ఫైల్లు; అవి కేవలం డాకర్ ఇమేజ్కి జోడించబడతాయి, ఇది కావలసిన ప్లాట్ఫారమ్ నుండి వారసత్వంగా పొందబడుతుంది. డాకర్హబ్లో ఇలాంటి అనేక చిత్రాలు ఎందుకు ఉన్నాయని మీరు ఎప్పుడైనా ఆలోచించారా? ఉదాహరణకు nginxని నమోదు చేయండి, మీరు వేర్వేరు వ్యక్తుల నుండి 100500 చిత్రాలను చూస్తారు. ఈ వ్యక్తులు nginxని అభివృద్ధి చేయలేదు, వారు తమ డాకర్ ఇమేజ్కి అధికారిక nginxని జోడించారు మరియు కంటైనర్లను ప్రారంభించే సౌలభ్యం కోసం వారి స్వంత కాన్ఫిగరేషన్లతో దానిని రుచికోసం చేసారు.
సాధారణంగా, మీరు దీన్ని tgzలో నిల్వ చేయవచ్చు, ఎవరైనా దీన్ని డాకర్లో అమలు చేయవలసి వస్తే, అప్పుడు వారిని డాకర్ఫైల్కి tgz జోడించి, కావలసిన వాతావరణం నుండి వారసత్వంగా పొందండి మరియు tgzలో అప్లికేషన్ను మార్చని అదనపు బన్లను సృష్టించడానికి అనుమతించండి. డాకర్ చిత్రాన్ని రూపొందించే ఎవరికైనా tgz అంటే ఏమిటో మరియు అతను ఏమి పని చేయాలో తెలుసుకుంటారు. నేను డాకర్ని ఈ విధంగా ఉపయోగిస్తాను ఇక్కడ
బాటమ్ లైన్: నాకు డాకర్ రిజిస్ట్రీ అవసరం లేదు, నేను ఒక రకమైన S3ని లేదా గూగుల్ డ్రైవ్/డ్రాప్బాక్స్ వంటి ఫైల్ స్టోరేజ్ని ఉపయోగిస్తాను
CI లో డాకర్
నేను పనిచేసిన కంపెనీలన్నీ ఒకేలా ఉన్నాయి. అవి సాధారణంగా కిరాణా. అంటే, వారికి ఒక అప్లికేషన్, ఒక టెక్నాలజీ స్టాక్ (అలాగే, బహుశా ఒక జంట లేదా మూడు ప్రోగ్రామింగ్ లాంగ్వేజెస్) ఉన్నాయి.
ఈ కంపెనీలు CI ప్రాసెస్ నడుస్తున్న వారి సర్వర్లలో డాకర్ను ఉపయోగిస్తాయి. ప్రశ్న: మీరు మీ సర్వర్లలో డాకర్ కంటైనర్లో ప్రాజెక్ట్లను ఎందుకు నిర్మించాలి? బిల్డ్ కోసం వాతావరణాన్ని ఎందుకు సిద్ధం చేయకూడదు, ఉదాహరణకు, బిల్డ్ జరిగే సర్వర్కు అవసరమైన nodejs, php, jdk, కాపీ ssh కీలు మొదలైన వాటి సంస్కరణలను ఇన్స్టాల్ చేసే Ansible ప్లేబుక్ను వ్రాయండి?
డాకర్ దాని ఐసోలేషన్తో ఎలాంటి లాభాన్ని తీసుకురాదు కాబట్టి, ఇది నా పాదంలో కాల్చుకుంటోందని ఇప్పుడు నేను అర్థం చేసుకున్నాను. డాకర్లో CIతో నేను ఎదుర్కొన్న సమస్యలు:
మళ్లీ నిర్మించడానికి మీకు డాకర్ చిత్రం అవసరం. మీరు చిత్రం కోసం వెతకాలి లేదా మీ స్వంత డాకర్ఫైల్ను వ్రాయాలి.
90% మీరు కొన్ని ssh కీలను ఫార్వార్డ్ చేయాలి, మీరు డాకర్ ఇమేజ్కి రాయకూడదనుకునే రహస్య డేటా.
కంటైనర్ సృష్టించబడింది మరియు చనిపోతుంది, దానితో పాటు అన్ని కాష్లు పోతాయి. తదుపరి బిల్డ్ అన్ని ప్రాజెక్ట్ డిపెండెన్సీలను మళ్లీ డౌన్లోడ్ చేస్తుంది, ఇది సమయం తీసుకునే మరియు పనికిరానిది మరియు సమయం డబ్బు.
డెవలపర్లు డాకర్ కంటైనర్లలో ప్రాజెక్ట్లను నిర్మించరు (నేను ఒకప్పుడు అలాంటి అభిమానిని, నిజంగా, గత xDలో నా గురించి నేను చింతిస్తున్నాను). జావాలో అనేక సంస్కరణలను కలిగి ఉండటం మరియు వాటిని ఇప్పుడు మీకు అవసరమైన ఒక కమాండ్తో మార్చడం సాధ్యమవుతుంది. ఇది nodejs లో అదే, nvm ఉంది.
తీర్మానం
డాకర్ చాలా శక్తివంతమైన మరియు సౌకర్యవంతమైన సాధనం అని నేను నమ్ముతున్నాను, ఇది దాని లోపం (వింతగా అనిపిస్తుంది, అవును). దాని సహాయంతో, కంపెనీలు దీన్ని సులభంగా కట్టిపడేశాయి మరియు అవసరమైన మరియు అవసరం లేని చోట ఉపయోగించుకోవచ్చు. డెవలపర్లు తమ కంటైనర్లను, వారి పరిసరాలలో కొన్నింటిని ప్రారంభిస్తారు, తర్వాత అవన్నీ సజావుగా CI మరియు ఉత్పత్తిలోకి ప్రవహిస్తాయి. DevOps బృందం ఈ కంటైనర్లను అమలు చేయడానికి ఒక రకమైన కోడ్ను వ్రాస్తోంది.
డాకర్ని ఆన్లో మాత్రమే ఉపయోగించండి ఇటీవల మీ వర్క్ఫ్లో దశలో, దీన్ని ప్రారంభంలో ప్రాజెక్ట్లోకి లాగవద్దు. ఇది మీ వ్యాపార సమస్యలను పరిష్కరించదు. అతను సమస్యలను మరొక స్థాయికి మాత్రమే మారుస్తాడు మరియు అతని స్వంత పరిష్కారాలను అందిస్తాడు, మీరు డబుల్ పని చేస్తారు.
డాకర్ అవసరమైనప్పుడు: ఇచ్చిన ప్రాసెస్ను ఆప్టిమైజ్ చేయడంలో డాకర్ చాలా మంచిదని నేను నిర్ధారణకు వచ్చాను, కానీ ప్రాథమిక కార్యాచరణను రూపొందించడంలో కాదు
మీరు ఇప్పటికీ డాకర్ని ఉపయోగించాలని నిర్ణయించుకుంటే, అప్పుడు:
చాలా జాగ్రత్తగా ఉండండి
డాకర్ని ఉపయోగించమని డెవలపర్లను బలవంతం చేయవద్దు
దాని వినియోగాన్ని ఒకే చోట స్థానీకరించండి, అన్ని డాక్ఫైల్ మరియు డాకర్-కంపోజ్ రిపోజిటరీలలో విస్తరించవద్దు
PS:
నేను ఈ మధ్యనే వచ్చాను ప్యాకర్ మరియు ఇది అన్సిబుల్తో బాగా పనిచేస్తుందని మరియు చిత్రాలను నిర్మించే ప్రక్రియను ఏకీకృతం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది (డాకర్ చిత్రంతో సహా)