Docker መረዳት

የድር ፕሮጄክቶችን ልማት/ማድረስ ሂደት ለማዋቀር ዶከርን ለብዙ ወራት እየተጠቀምኩ ነው። የሃብራክብርን አንባቢዎች ስለ ዶከር የመግቢያ መጣጥፍ ትርጉም አቀርባለሁ - "ዶክተርን መረዳት".

ዶከር ምንድን ነው?

ዶከር መተግበሪያዎችን ለማዳበር፣ ለማድረስ እና ለማሰራት ክፍት መድረክ ነው። Docker የእርስዎን መተግበሪያዎች በፍጥነት ለማድረስ የተነደፈ ነው። በዶክተር መተግበሪያዎን ከመሠረተ ልማትዎ ማላቀቅ እና መሠረተ ልማትን እንደ የሚተዳደር መተግበሪያ አድርገው መያዝ ይችላሉ። ዶከር ኮድዎን በፍጥነት እንዲልኩ፣ በፍጥነት እንዲሞክሩ፣ መተግበሪያዎችን በፍጥነት እንዲልኩ እና ኮድ በመፃፍ እና በማስኬድ መካከል ያለውን ጊዜ እንዲቀንሱ ያግዝዎታል። ዶከር ይህን የሚያደርገው ቀላል ክብደት ባለው የኮንቴይነር ቨርቹዋልላይዜሽን መድረክ፣ አፕሊኬሽኖችዎን ለማስተዳደር እና ለማስተናገድ የሚረዱዎትን ሂደቶች እና መገልገያዎችን በመጠቀም ነው።

በዋናው ላይ ፣ ዶከር ማንኛውንም መተግበሪያ በኮንቴይነር ውስጥ ደህንነቱ በተጠበቀ ሁኔታ እንዲያሄዱ ይፈቅድልዎታል። ደህንነቱ የተጠበቀ ማግለል ብዙ ኮንቴይነሮችን በአንድ አስተናጋጅ ላይ በተመሳሳይ ጊዜ እንዲያሄዱ ያስችልዎታል። ያለ ሃይፐርቫይዘር ያለ ተጨማሪ ሸክም የሚሰራው የእቃው ቀላል ክብደት ከሃርድዌርዎ የበለጠ እንዲያገኙ ያስችልዎታል።

የመያዣው ምናባዊ መድረክ እና መሳሪያዎች በሚከተሉት ሁኔታዎች ጠቃሚ ሊሆኑ ይችላሉ:

  • ማመልከቻዎን (እና የሚጠቀሙባቸውን ክፍሎች) ወደ ዶክ ኮንቴይነሮች ማሸግ;
  • ለልማት እና ለሙከራ እነዚህን ኮንቴይነሮች ለቡድኖችዎ ማከፋፈል እና ማድረስ;
  • በመረጃ ማእከሎች እና በደመናዎች ውስጥ እነዚህን መያዣዎች በምርት ቦታዎችዎ ላይ መዘርጋት ።

ዶከርን ምን መጠቀም እችላለሁ?

መተግበሪያዎችዎን በፍጥነት ያትሙ

ዶከር የእድገት ዑደቱን ለማደራጀት በጣም ጥሩ ነው. Docker ገንቢዎች የአካባቢ መያዣዎችን ከመተግበሪያዎች እና አገልግሎቶች ጋር እንዲያሄዱ ያስችላቸዋል። ይህም በቀጣይነት ከተከታታይ ውህደት እና የስራ ፍሰት ሂደት ጋር እንዲዋሃዱ ያስችልዎታል.

ለምሳሌ፣ የእርስዎ ገንቢዎች በአገር ውስጥ ኮድ ይጽፋሉ እና የእድገት ቁልል (የዶከር ምስሎች ስብስብ) ከሥራ ባልደረቦችዎ ጋር ይጋራሉ። ዝግጁ ሲሆኑ ኮዱን እና ኮንቴይነሮችን ወደ መሞከሪያው ቦታ ገፍተው ማንኛውንም አስፈላጊ ሙከራዎች ያካሂዳሉ። ከሙከራ ጣቢያው, ኮድ እና ምስሎችን ወደ ምርት መላክ ይችላሉ.

ቀላል አቀማመጥ እና መዘርጋት

በዶከር ኮንቴይነር ላይ የተመሰረተ መድረክ ክፍያ ጭነትዎን በቀላሉ ወደ መላክ ቀላል ያደርገዋል። የዶከር ኮንቴይነሮች በአከባቢዎ ማሽን ላይ በእውነተኛ ወይም በመረጃ ማእከል ውስጥ በምናባዊ ማሽን ላይ ወይም በደመና ውስጥ ሊሰሩ ይችላሉ።

የዶክተር ተንቀሳቃሽነት እና ቀላል ክብደት ተፈጥሮ የስራ ጫናዎን በተለዋዋጭ መንገድ ለመቆጣጠር ቀላል ያደርገዋል። መተግበሪያዎን ወይም አገልግሎቶችዎን ለማሰማራት ወይም ለማጥፋት ዶከርን መጠቀም ይችላሉ። የመትከያ ፍጥነት ይህ በእውነተኛ ሰዓት ውስጥ እንዲከናወን ያስችለዋል.

ከፍተኛ ጭነት እና ተጨማሪ ጭነት

ዶከር ቀላል እና ፈጣን ነው። በሃይፐርቫይዘር ላይ ከተመሰረቱ ምናባዊ ማሽኖች ጋር የሚቋቋም፣ ወጪ ቆጣቢ አማራጭን ይሰጣል። በተለይም ከፍተኛ ጭነት በሚኖርበት አካባቢ, ለምሳሌ የራስዎን ደመና ወይም የመሳሪያ ስርዓት-እንደ አገልግሎት ሲፈጥሩ ጠቃሚ ነው. ነገር ግን ካሉዎት ሀብቶች የበለጠ ለማግኘት በሚፈልጉበት ጊዜ ለአነስተኛ እና መካከለኛ አፕሊኬሽኖች ጠቃሚ ነው.

ዋና ዶከር አካላት

ዶከር ሁለት ዋና ዋና ክፍሎችን ያቀፈ ነው-

  • Docker: ክፍት ምንጭ ምናባዊ መድረክ;
  • Docker Hub፡ የእኛ መድረክ-እንደ-አገልግሎት የዶከር ኮንቴይነሮችን ለማሰራጨት እና ለማስተዳደር።

ማስታወሻ! Docker በ Apache 2.0 ፍቃድ ስር ተሰራጭቷል።

ዶከር አርክቴክቸር

ዶከር ደንበኛ-አገልጋይ አርክቴክቸርን ይጠቀማል። የዶከር ደንበኛ ከዶከር ዴሞን ጋር ይገናኛል፣ ይህም የእርስዎን መያዣዎች የመፍጠር፣ የማስኬድ እና የማከፋፈል ሸክሙን ይጭናል። ሁለቱም ተገልጋይ እና አገልጋይ በተመሳሳይ ስርዓት ሊሰሩ ይችላሉ፣ ደንበኛውን ከርቀት ዶከር ዴሞን ጋር ማገናኘት ይችላሉ። ደንበኛው እና አገልጋዩ በሶኬት ወይም RESTful API በኩል ይገናኛሉ።

Docker መረዳት

ዶከር ዴሞን

በሥዕላዊ መግለጫው ላይ እንደሚታየው ዴሞን በአስተናጋጅ ማሽን ላይ ይሰራል። ተጠቃሚው ከአገልጋዩ ጋር በቀጥታ አይገናኝም ፣ ግን ለዚህ ደንበኛው ይጠቀማል።

የዶከር ደንበኛ

የዶከር ደንበኛ፣ የዶክተር ፕሮግራም፣ የዶከር ዋና በይነገጽ ነው። ከተጠቃሚው ትዕዛዞችን ይቀበላል እና ከዶክተር ዴሞን ጋር ይገናኛል።

የውስጥ ዶከር

ዶከር ምን እንደሚይዝ ለመረዳት ስለ ሶስት አካላት ማወቅ ያስፈልግዎታል

  • ምስሎች
  • መዝገብ ቤት
  • መያዣዎች

ምስሎች

የዶከር ምስል ተነባቢ-ብቻ አብነት ነው። ለምሳሌ፣ ምስሉ የኡቡንቱ ኦፕሬቲንግ ሲስተም Apache እና በላዩ ላይ ያለ መተግበሪያ ሊይዝ ይችላል። ምስሎች መያዣዎችን ለመፍጠር ጥቅም ላይ ይውላሉ. Docker አዳዲስ ምስሎችን መፍጠር፣ ያሉትን ማዘመን ወይም በሌሎች ሰዎች የተፈጠሩ ምስሎችን ማውረድ ቀላል ያደርገዋል። ምስሎች የመትከያ ግንባታ አካላት ናቸው።

መዝገብ ቤት

የዶከር መዝገብ ቤት ምስሎችን ያከማቻል። ምስሎችን ማውረድ ወይም መስቀል የምትችልባቸው የህዝብ እና የግል መዝገብ ቤቶች አሉ። ይፋዊ ዶከር መዝገብ ነው። Docker ማዕከል. እዚያ የተከማቹ ግዙፍ የምስሎች ስብስብ አለ። እንደሚያውቁት ምስሎች በእርስዎ ሊፈጠሩ ይችላሉ ወይም በሌሎች የተፈጠሩ ምስሎችን መጠቀም ይችላሉ። መዝገብ ቤቶች የማከፋፈያ አካል ናቸው።

ኮንቴይነሮች

ኮንቴይነሮች ከማውጫዎች ጋር ተመሳሳይ ናቸው. ኮንቴይነሮች አፕሊኬሽኑ ለማስኬድ የሚያስፈልገውን ሁሉ ይይዛሉ። እያንዳንዱ መያዣ ከምስል የተፈጠረ ነው. ኮንቴይነሮች ሊፈጠሩ፣ ሊጀመሩ፣ ሊቆሙ፣ ሊሰደዱ ወይም ሊሰረዙ ይችላሉ። እያንዳንዱ ኮንቴይነር ተለይቷል እና ለመተግበሪያው አስተማማኝ መድረክ ያቀርባል. ኮንቴይነሮች የሥራው ክፍሎች ናቸው.

ስለዚህ Docker እንዴት ነው የሚሰራው?

እስከዚህ ድረስ እናውቃለን፡-

  • መተግበሪያዎቻችን የሚገኙባቸውን ምስሎች መፍጠር እንችላለን;
  • አፕሊኬሽኖችን ለማስኬድ ከምስሎች መያዣዎችን መፍጠር እንችላለን;
  • ምስሎችን በDocker Hub ወይም በሌላ የምስል መዝገብ ማሰራጨት እንችላለን።

እነዚህ ክፍሎች እንዴት እንደሚጣመሩ እንይ.

ምስሉ እንዴት ነው የሚሰራው?

ምስል መያዣ የሚፈጠርበት ተነባቢ-ብቻ አብነት መሆኑን አስቀድመን እናውቃለን። እያንዳንዱ ምስል ደረጃዎችን ያካትታል. ዶከር ይጠቀማል ህብረት ፋይል ስርዓት እነዚህን ደረጃዎች ወደ አንድ ምስል ለማጣመር. የዩኒየን የፋይል ስርዓት ከተለያዩ የፋይል ስርዓቶች (የተለያዩ ቅርንጫፎች) ፋይሎች እና ማውጫዎች ግልጽ በሆነ መልኩ እንዲደራረቡ ያስችላቸዋል፣ ይህም ወጥ የሆነ የፋይል ስርዓት ይፈጥራል።

ዶከር ቀላል እንዲሆን ከሚያደርጉት ምክንያቶች አንዱ እንደዚህ አይነት ንብርብሮችን ስለሚጠቀም ነው። ምስሉን ሲቀይሩ፣ ለምሳሌ መተግበሪያን ማዘመን፣ አዲስ ንብርብር ይፈጠራል። ስለዚህ፣ ምስሉን ሙሉ በሙሉ ሳይቀይሩት ወይም እንደገና ሳይገነቡት፣ ከቨርቹዋል ማሽን ጋር እንደሚገናኙት፣ ንብርብሩ ብቻ ነው የሚጨመረው ወይም የሚዘመነው። እና አዲሱን ምስል ሙሉ በሙሉ ማሰራጨት የለብዎትም ፣ ዝመናው ብቻ ይሰራጫል ፣ ይህም ምስሎችን ለማሰራጨት ቀላል እና ፈጣን ያደርገዋል።

በእያንዳንዱ ምስል ልብ ውስጥ መሰረታዊ ምስል ነው. ለምሳሌ፣ ubuntu፣ የኡቡንቱ መነሻ ምስል፣ ወይም ፌዶራ፣ የፌዶራ ስርጭት መሰረታዊ ምስል። አዲስ ምስሎችን ለመፍጠር ምስሎችን እንደ መሰረት አድርገው መጠቀም ይችላሉ. ለምሳሌ፣ የ apache ምስል ካልዎት፣ ለድር መተግበሪያዎችዎ እንደ መሰረታዊ ምስል ሊጠቀሙበት ይችላሉ።

ማስታወሻ! Docker በተለምዶ ምስሎችን ከDocker Hub መዝገብ ይጎትታል።

Docker ምስሎች ከእነዚህ የመሠረት ምስሎች ሊፈጠሩ ይችላሉ, እነዚህን ምስሎች መመሪያዎችን ለመፍጠር ደረጃዎቹን እንጠራዋለን. እያንዳንዱ መመሪያ አዲስ ምስል ወይም ደረጃ ይፈጥራል. መመሪያው እንደሚከተለው ይሆናል.

  • ትዕዛዝ አሂድ
  • ፋይል ወይም ማውጫ ማከል
  • የአካባቢ ተለዋዋጭ መፍጠር
  • የዚህ ምስል መያዣ በሚነሳበት ጊዜ ምን እንደሚሰራ መመሪያ

እነዚህ መመሪያዎች በፋይል ውስጥ ተቀምጠዋል Dockerfile. ዶከር ይህን ያነባል። Dockerfile, ምስሉን ሲገነቡ, እነዚህን መመሪያዎች ያስፈጽማል እና የመጨረሻውን ምስል ይመልሳል.

የዶክተር መዝገብ ቤት እንዴት ይሠራል?

መዝገቡ ለዶከር ምስሎች ማከማቻ ነው። ምስሉ አንዴ ከተፈጠረ በኋላ ወደ ይፋዊው የDocker Hub መዝገብ ቤት ወይም ወደ እርስዎ የግል መዝገብ ቤት ማተም ይችላሉ።

በዶከር ደንበኛ፣ ቀደም ብለው የታተሙ ምስሎችን መፈለግ እና መያዣዎችን ለመፍጠር ወደ ዶክ ማሽንዎ ማውረድ ይችላሉ።

Docker Hub የህዝብ እና የግል ምስል ማከማቻዎችን ያቀርባል። ምስሎችን ከህዝብ ማከማቻዎች መፈለግ እና ማውረድ ለሁሉም ሰው ይገኛል። የግል ማከማቻዎች ይዘቶች በፍለጋ ውጤቶቹ ውስጥ አልተካተቱም። እና እርስዎ እና ተጠቃሚዎችዎ ብቻ እነዚህን ምስሎች መቀበል እና መያዣዎችን መፍጠር የሚችሉት።

መያዣ እንዴት ይሠራል?

መያዣው ኦፕሬቲንግ ሲስተም፣ የተጠቃሚ ፋይሎች እና ሜታዳታ ያካትታል። እንደምናውቀው, እያንዳንዱ ኮንቴይነር ከምስል የተፈጠረ ነው. ይህ ምስል በመያዣው ውስጥ ምን እንዳለ፣ ምን አይነት ሂደት እንደሚጀመር፣ ኮንቴይነሩ ሲጀመር እና ሌላ የማዋቀር ውሂብ ለዶክተር ይነግረናል። የዶከር ምስሉ ተነባቢ-ብቻ ነው። ዶከር ኮንቴይነር ሲጀምር በምስሉ ላይ (ከዚህ በፊት እንደተገለጸው የዩኒየን ፋይል ስርዓትን በመጠቀም) የሚነበብ/የሚፃፍ ንብርብር ይፈጥራል።

መያዣው ሲጀምር ምን ይሆናል?

ወይም ፕሮግራሙን በመጠቀም dockerወይም RESTful ኤፒአይን በመጠቀም የዶከር ደንበኛው መያዣውን እንዲጀምር ለዶከር ዴሞን ይነግረዋል።

$ sudo docker run -i -t ubuntu /bin/bash

ይህን ትእዛዝ እንመልከት። ደንበኛው ትዕዛዙን በመጠቀም ይጀምራል docker፣ ከአማራጭ ጋር runአዲስ ኮንቴነር ሊነሳ ነው የሚለው። መያዣውን ለማስኬድ ዝቅተኛው መስፈርቶች የሚከተሉት ባህሪዎች ናቸው ።

  • መያዣውን ለመፍጠር የትኛውን ምስል መጠቀም እንደሚቻል. በእኛ ሁኔታ ubuntu
  • መያዣው ሲጀመር ማስኬድ የሚፈልጉት ትዕዛዝ. በእኛ ሁኔታ /bin/bash

ይህንን ትእዛዝ ስናስኬድ በኮድ ስር ምን ይሆናል?

ዶከር ፣ በቅደም ተከተል ፣ የሚከተሉትን ያደርጋል

  • የኡቡንቱን ምስል ያወርዳል፡- ዶከር የምስል ተገኝነትን ይፈትሻል ubuntu በአካባቢው ማሽን ላይ, እና እዚያ ከሌለ, ከዚያ ያውርዱት Docker ማዕከል. ምስል ካለ, መያዣ ለመፍጠር ይጠቀምበታል;
  • መያዣን ይፈጥራል; ምስሉ ሲደርሰው ዶከር መያዣ ለመፍጠር ይጠቀምበታል;
  • የፋይል ስርዓቱን ያስጀምራል እና ተነባቢ-ብቻ ደረጃን ይጭናል፡ መያዣው በፋይል ስርዓት ውስጥ ተፈጠረ እና ምስሉ ወደ ተነባቢ-ብቻ ደረጃ ተጨምሯል;
  • ኔትወርክ/ድልድዩን ያስጀምራል፡- ዶከር ከአስተናጋጅ ማሽን ጋር እንዲገናኝ የሚያስችል የአውታረ መረብ በይነገጽ ይፈጥራል;
  • የአይፒ አድራሻውን ማቀናበር; አድራሻውን ፈልጎ ያዘጋጃል;
  • የተገለጸውን ሂደት ይጀምራል፡- መተግበሪያዎን ይጀምራል;
  • ከመተግበሪያዎ ውፅዓት ያስኬዳል እና ያስገኛል፡ የመተግበሪያዎን መደበኛ ግብአት፣ ውፅዓት እና የስህተት ዥረት ያገናኛል እና ይመዘግባል ስለዚህ መተግበሪያዎ እንዴት እየሰራ እንደሆነ መከታተል ይችላሉ።

አሁን የሚሠራ መያዣ አለህ። መያዣዎን ማስተዳደር፣ ከመተግበሪያዎ ጋር መስተጋብር መፍጠር ይችላሉ። ማመልከቻውን ለማቆም ሲወስኑ መያዣውን ይሰርዙ.

ያገለገሉ ቴክኖሎጂዎች

ዶከር በ Go ውስጥ የተፃፈ ሲሆን ከላይ ያለውን ተግባር ለመተግበር አንዳንድ የሊኑክስ ከርነል ባህሪያትን ይጠቀማል።

የስም ቦታዎች

ዶከር ቴክኖሎጂን ይጠቀማል namespaces ኮንቴይነሮች ብለን የምንጠራቸው ገለልተኛ የሥራ ቦታዎችን ለማደራጀት. መያዣ ስንጀምር ዶከር ለዚያ መያዣ የስም ቦታዎች ስብስብ ይፈጥራል።

ይህ የገለልተኛ ንብርብር ይፈጥራል, እያንዳንዱ የእቃ መያዣው ገጽታ በራሱ የስም ቦታ ላይ ይሰራል እና ወደ ውጫዊ ስርዓቱ መዳረሻ የለውም.

ዶከር የሚጠቀምባቸው አንዳንድ የስም ቦታዎች ዝርዝር፡-

  • ፒዲ ሂደቱን ለመለየት;
  • የተጣራ: የአውታረ መረብ መገናኛዎችን ለማስተዳደር;
  • አይፒሲ፡ የአይፒሲ ሀብቶችን ለማስተዳደር. (አይሲፒ፡ ኢንተርፕሮሴስ ኮሙኒኬሽን);
  • mnt: የመጫኛ ነጥቦችን ለማስተዳደር;
  • utc: የከርነል እና የቁጥጥር ሥሪት ማመንጨትን ለመለየት (UTC: Unix timesharing system)።

የቁጥጥር ቡድኖች

ዶከር ቴክኖሎጂንም ይጠቀማል cgroups ወይም የቁጥጥር ቡድኖች. አፕሊኬሽኑን በተናጥል ለማሄድ ዋናው ነገር አፕሊኬሽኑን ማቅረብ የሚፈልጉትን ግብአት ብቻ ማቅረብ ነው። ይህ መያዣዎቹ ጥሩ ጎረቤቶች እንደሚሆኑ ያረጋግጣል. የቁጥጥር ቡድኖች የሚገኙትን የሃርድዌር ሀብቶች እንዲያጋሩ እና አስፈላጊ ከሆነ ገደቦችን እና ገደቦችን እንዲያዘጋጁ ያስችሉዎታል። ለምሳሌ, ለመያዣው የሚቻለውን የማስታወሻ መጠን ይገድቡ.

ህብረት ፋይል ስርዓት

Union File Sysem ወይም UnionFS በጣም ቀላል እና ፈጣን እንዲሆን በማድረግ ንብርብሮችን በመፍጠር የሚሰራ የፋይል ስርዓት ነው። ዶከር ኮንቴይነሩ የተገነባባቸውን ብሎኮች ለመፍጠር UnionFSን ይጠቀማል። ዶከር የሚከተሉትን ጨምሮ፡ AUFS፣ btrfs፣ vfs እና DeviceMapperን ጨምሮ በርካታ የ UnionFS አይነቶችን መጠቀም ይችላል።

የመያዣ ቅርጸቶች

ዶከር እነዚህን ክፍሎች በማጣመር የእቃ መያዢያ ፎርማት ብለን እንጠራዋለን ጥቅል። ነባሪው ቅርጸት ይባላል libcontainer. ዶከር በሊኑክስ ላይ ያለውን ተለምዷዊ የመያዣ ፎርማትም ይደግፋል ኤል.ሲ.ሲ. ለወደፊቱ፣ Docker ሌሎች የመያዣ ቅርጸቶችን ሊደግፍ ይችላል። ለምሳሌ ከ BSD Jails ወይም Solaris Zones ጋር መቀላቀል።

ምንጭ: hab.com

አስተያየት ያክሉ