VM sa Docker?

Ahoana no ahafantaranao raha mila Docker ianao fa tsy VM? Mila mamaritra izay tena tianao hatokana ianao. Raha te hanasaraka rafitra misy loharano voatokana azo antoka sy fitaovana virtoaly ianao, dia tokony ho VM ny safidy. Raha mila manasaraka ny rindranasa mihazakazaka ho toy ny fizotry ny rafitra misaraka ianao dia mila Docker.

Ka inona no maha samy hafa ny Docker containers sy VMs?

Masinina virtoaly (VM) dia solosaina virtoaly misy fitaovana virtoaly rehetra sy kapila mafy virtoaly izay ametrahana OS tsy miankina vaovao miaraka amin'ireo mpamily fitaovana virtoaly, fitantanana fahatsiarovana ary singa hafa. Izany hoe, mahazo abstraction ny fitaovana ara-batana izay ahafahantsika mampandeha solosaina virtoaly maro amin'ny solosaina iray.
Ny VM napetraka dia afaka maka toerana ao amin'ny kapilan'ny solosainao amin'ny fomba samihafa:

  • habaka kapila mafy raikitra, izay ahafahana miditra haingana kokoa amin'ny kapila mafy virtoaly ary misoroka ny fizarazarana rakitra;
  • fizarana fahatsiarovana dynamique. Rehefa mametraka rindranasa fanampiny dia atokana ho azy ireo ny fitadidiana mandra-pahatongany amin'ny vola ambony indrindra omena azy.

Arakaraky ny milina virtoaly isaky ny mpizara no mahabetsaka ny habaka alainy, ary mitaky fanohanana tsy tapaka ihany koa ny tontolo ilaina amin'ny fampiharana anao.

Docker dia rindrambaiko hamoronana fampiharana mifototra amin'ny container. Ny kaontenera sy ny milina virtoaly dia manana tombony mitovy, saingy amin'ny fomba hafa. Kely kokoa ny toerana misy ny kaontenera satria... ampiasao indray ny loharanon-karena iombonana kokoa amin'ny rafitra mpampiantrano noho ny VM, satria tsy toy ny VM, manome virtoaly amin'ny ambaratonga OS, fa tsy amin'ny haavon'ny hardware. Ity fomba fiasa ity dia miteraka dian-tongotra fitadidiana ambany kokoa, fametrahana haingana kokoa, ary fanamafisam-peo mora kokoa.

Ny kaontenera dia manome mekanika mahomby kokoa amin'ny fandrakofana ny rindranasa amin'ny fanomezana ny fifandraisana ilaina amin'ny rafitra mpampiantrano. Ity endri-javatra ity dia ahafahan'ny kaontenera mizara ny fototry ny rafitra, miaraka amin'ny kaontenera tsirairay mandeha ho toy ny fizotry ny OS fampiantranoana manokana izay manana faritra fitadidiana manokana (espace adiresy virtoaly manokana). Satria ny toerana misy ny adiresy virtoaly an'ny kaontenera tsirairay dia azy manokana, tsy azo ovaina ny angona avy amin'ny faritra fitadidiana samihafa.
Ny OS teratany ho an'ny Docker dia Linux (azo ampiasaina amin'ny Windows sy MacOS koa i Docker), mampiasa ny tombony lehibe indrindra izy, izay mamela azy handamina ny fisarahana kernel. Ny fampandehanana ny kaontenera Docker amin'ny Windows dia hatao ao anaty milina virtoaly mitantana Linux OS, satria ny container dia mizara ny OS amin'ny rafitra mpampiantrano ary ny OS lehibe ho azy ireo dia Linux.

Container - ahoana no fiasan'izy io?

fitoeran-javatra dia abstraction amin'ny ambaratonga fampiharana izay manambatra ny kaody sy ny fiankinan-doha. Ny kaontenera dia noforonina avy amin'ny sary foana, manampy sosona ambony azo soratana ary manomboka masontsivana isan-karazany. Satria manana sosona fanoratana azy manokana ny kaontenera iray ary voatahiry ao anatin'io sosona io ny fanovana rehetra, ny kaontenera maromaro dia afaka mizara ny fidirana amin'ny sary master iray ihany.

Ny kaontenera tsirairay dia azo amboarina amin'ny alΓ lan'ny rakitra iray ao amin'ny tetikasa docker-compose tafiditra ao amin'ny vahaolana lehibe - docker-compose.yml. Any ianao dia afaka mametraka masontsivana isan-karazany toy ny anaran'ny container, ports, identifiers, fetran'ny loharanon-karena, miankina amin'ny container hafa. Raha tsy mamaritra anarana fitoeran-javatra ao amin'ny toe-javatra ianao, Docker dia hamorona fitoeran-javatra vaovao isaky ny manome azy anarana kisendrasendra.

Rehefa atomboka amin'ny sary ny kaontenera iray, dia mametraka rafitra fichier vakiana-manoratra eo ambonin'ireo sosona etsy ambany i Docker. Eo no hihazakazaka ny dingana rehetra tiantsika handehanan'ny Docker container.

Rehefa manomboka fitoeran-javatra iray i Docker dia foana ny sosona mamaky-manoratra voalohany. Rehefa misy fiovana dia ampiharina amin'io sosona io; ohatra, raha te hanova rakitra ianao dia hadika avy amin'ny sosona vakiana fotsiny etsy ambany mankany amin'ny sosona mamaky-manoratra io rakitra io.
Mbola hisy ny dikan-teny vakiana fotsiny amin'ny rakitra, saingy miafina ao ambanin'ny kopia izy izao. Ny boky dia ampiasaina hitahirizana angon-drakitra, na inona na inona tsingerin'ny fiainan'ny container. Natomboka ny boky rehefa noforonina ny container.

Ahoana no ifandraisan'ilay sary amin'ilay fitoeran-javatra?

sary - ny singa fototra ho an'ny fitoeran-javatra tsirairay. Ny sary dia noforonina avy amin'ny Dockerfile nampidirina tao amin'ny tetikasa ary dia fitambarana rafitra fichier (sosona) mifanakaiky ary mivondrona miaraka, mamaky fotsiny; Ny isan'ny sosona ambony indrindra dia 127.

Ao am-pon'ny sary tsirairay dia misy sary fototra, izay voafaritry ny baiko FROM - ny teboka fidirana rehefa manamboatra ny sary Dockerfile. Ny sosona tsirairay dia sosona vakiana fotsiny ary asehon'ny baiko tokana izay manova ny rafi-drakitra, voasoratra ao anaty Dockerfile.
Mba hanambatra ireo sosona ireo ho sary tokana, Docker dia mampiasa ny rafitra fichier Advanced multi layered Union (AuFS dia naorina eo an-tampon'ny UnionFS), mamela ireo rakitra sy lahatahiry samihafa avy amin'ny sarin'ny rakitra samihafa ho voapetaka mangarahara, mamorona rafitra fichier mitambatra.

Ny sosona dia misy metadata ahafahanao mitahiry vaovao mifandraika amin'ny sosona tsirairay mandritra ny fotoana fandehanana sy ny fananganana. Ny sosona tsirairay dia misy rohy mankany amin'ny sosona manaraka; raha tsy misy rohy ny sosona iray dia io no sosona ambony indrindra amin'ny sary.

Ny Dockerfile dia mety misy baiko toy ny:

  • FROM β€” teboka fidirana rehefa mamorona sary;
  • MAINTAINER - anaran'ny tompon'ny sary;
  • RUN - famonoana baiko mandritra ny fanangonana sary;
  • ADD - mandika ny rakitra fampiantranoana amin'ny sary vaovao; raha mamaritra ny URL an'ny rakitra ianao, dia hampiditra azy amin'ny lahatahiry voatondro i Docker;
  • ENV - fari-piainan'ny tontolo iainana;
  • CMD - manomboka ny famoronana fitoeran-javatra vaovao mifototra amin'ny sary;
  • ENTRYPOINT - ny baiko dia tanterahina rehefa manomboka ny container.
  • WORKDIR no lahatahiry miasa amin'ny fanatanterahana ny baiko CMD.
  • USER - mametraka ny UID ho an'ny kaontenera noforonina mifototra amin'ny sary.
  • VOLUME - mametraka ny lahatahiry mpampiantrano ao anaty fitoeran-javatra.
  • EXPOSE dia seranan-tsambo henoina ao anaty kaontenera.

Ahoana no fiasan'ny UnionFS?

UnionFS - rafitra fichier stack (FS) ho an'ny Linux sy FreeBSD. Ity FS ity dia mametraka mekanika dika mitovy amin'ny fanoratana (Copy-On-Write, COW). Ny sampana miasa ao amin'ny UnionFS dia sosona; ny sosona tsirairay dia tokony hoheverina ho rafitra fichier misaraka feno miaraka amin'ny ambaratongam-pandaminana avy amin'ny fakany. Ny UnionFS dia mamorona union mount ho an'ny rafi-drakitra hafa ary mamela ny rakitra sy ny lahatahiry avy amin'ny rafi-drakitra samihafa (antsoina hoe forks) mba hitambatra ho rafitra fichier tokana, mangarahara amin'ny mpampiasa.

Ny votoatin'ny lahatahiry miaraka amin'ny lalana mitovy dia hiseho miaraka amin'ny lahatahiry mitambatra iray (ao amin'ny toeran'ny anarana tokana) amin'ny rafitra fisie.

UnionFS dia manambatra sosona mifototra amin'ireto fitsipika manaraka ireto:

  • ny iray amin'ireo sosona dia lasa ambony ambony, ny faharoa sy ny manaraka dia lasa ambany kokoa;
  • Ny zavatra sosona dia azon'ny mpampiasa "avy any ambony ka hatrany ambany", izany hoe. raha ao amin'ny sosona "ambony" ny zavatra nangatahina dia averina, na inona na inona fisian'ny zavatra mitovy anarana ao amin'ny sosona "ambany"; raha tsy izany dia averina ny zavatra momba ny "ambany"; raha tsy ao no tsy ao ilay zavatra nangatahana, dia averina ny fahadisoana "Tsy misy rakitra na lahatahiry";
  • ny sosona miasa dia ny "ambony" iray, izany hoe, ny hetsika rehetra ataon'ny mpampiasa hanova ny angona dia hita taratra eo amin'ny sosona ambony indrindra, tsy misy fiantraikany amin'ny atiny amin'ny sosona ambany.

Docker no teknolojia mahazatra indrindra amin'ny fampiasana kaontenera hampandehanana rindranasa. Lasa fenitra eo amin'ny sehatra izy io, miorina amin'ny cgroups sy ny toerana misy anarana nomen'ny kernel Linux.

Docker dia mamela antsika hametraka haingana ny rindranasa ary hampiasa tsara indrindra ny rafi-drakitra amin'ny alΓ lan'ny fisarahana ny kernel OS amin'ireo fitoeran-javatra rehetra, mandeha ho toy ny fizotry ny OS misaraka.

Source: www.habr.com

Add a comment