Fahatakarana ny Docker

Nampiasa Docker nandritra ny volana maromaro aho izao mba handrafetana ny fizotran'ny fampandrosoana/fanaterana tetikasa tranonkala. Manolotra fandikana ny lahatsoratra fampidirana momba ny docker ho an'ny mpamaky Habrakhabr aho - "Mahafantatra ny docker".

Inona no atao hoe docker?

Docker dia sehatra misokatra ho an'ny famolavolana, fanaterana ary fampiharana fampiharana. Docker dia natao hanaterana haingana kokoa ny rindranasao. Miaraka amin'ny docker, azonao atao ny manaisotra ny fampiharana anao amin'ny fotodrafitrasao ary mitondra ny fotodrafitrasa ho toy ny fampiharana voatantana. Docker dia manampy anao handefa ny kaodinao haingana kokoa, hizaha toetra haingana kokoa, handefasana fampiharana haingana kokoa, ary hampihena ny fotoana eo anelanelan'ny fanoratana kaody sy kaody mihazakazaka. Docker dia manao izany amin'ny alàlan'ny sehatra virtoaly virtoaly maivana, amin'ny fampiasana ireo dingana sy fitaovana manampy anao hitantana sy hanaterana ny rindranasao.

Amin'ny fotony, ny docker dia ahafahanao mampandeha saika fampiharana rehetra, mitoka-monina tsara ao anaty fitoeran-javatra iray. Ny fitokana-monina azo antoka dia ahafahanao mitantana kaontenera maro amin'ny mpampiantrano iray amin'ny fotoana iray ihany. Ny toetra maivana amin'ny kaontenera, izay mandeha tsy misy enta-mavesatra fanampiny amin'ny hypervisor, dia ahafahanao mahazo bebe kokoa amin'ny fitaovanao.

Ny sehatra virtoaly virtoaly kaontenera sy fitaovana dia mety ilaina amin'ireto tranga manaraka ireto:

  • fametahana ny fampiharanao (sy ny singa ampiasainao) ao anaty fitoeran-docker;
  • fizarana sy fanaterana ireo kaontenera ireo ho an'ny ekipanao ho an'ny fampandrosoana sy fitsapana;
  • mametraka ireo kaontenera ireo amin'ny tranokala famokaranao, na any amin'ny foibe angona na any amin'ny rahona.

Inona no azoko ampiasana docker?

Avoahy haingana ny fampiharanao

Docker dia tsara amin'ny fikarakarana ny tsingerin'ny fampandrosoana. Docker dia ahafahan'ny mpamorona mitantana container eo an-toerana miaraka amin'ny fampiharana sy serivisy. Izany dia ahafahanao miditra amin'ny dingan'ny fampidirana mitohy sy ny deployment workflow.

Ohatra, manoratra kaody eo an-toerana ny mpamorona anao ary mizara ny antontan-taratasiny (sary Docker) miaraka amin'ny mpiara-miasa aminy. Rehefa vonona izy ireo dia manosika ny kaody sy ny kaontenera any amin'ny tranokalan'ny fitsapana ary manao fitsapana ilaina. Avy amin'ny tranokalan'ny fitsapana, afaka mandefa kaody sy sary izy ireo amin'ny famokarana.

Mora kokoa ny mametraka sy mivelatra

Ny sehatra mifototra amin'ny docker container dia manamora ny fandefasana ny entanao. Ny kaontenera Docker dia afaka mandeha amin'ny milina eo an-toerana, na tena izy na amin'ny milina virtoaly ao amin'ny foibe data, na ao anaty rahona.

Ny toetran'ny docker mora entina sy maivana dia manamora ny fitantanana mavitrika ny asanao. Azonao atao ny mampiasa docker mba hametrahana na hanakatona ny fampiharana na serivisy. Ny hafainganam-pandehan'ny docker dia ahafahana manao izany amin'ny fotoana tena izy.

Enta-mavesatra kokoa sy enta-mavesatra bebe kokoa

Maivana sy haingana ny Docker. Izy io dia manome safidy azo antoka sy lafo vidy ho an'ny milina virtoaly mifototra amin'ny hypervisor. Tena ilaina amin'ny tontolo be entana izy io, ohatra, rehefa mamorona rahona na sehatra-as-service anao manokana. Fa ilaina ihany koa ho an'ny rindranasa madinika sy salantsalany rehefa te hahazo bebe kokoa amin'ny loharano anananao ianao.

Main Docker Components

Docker dia misy singa roa lehibe:

  • Docker: sehatra virtoaly loharano misokatra;
  • Docker Hub: Ny sehatra-as-service anay amin'ny fizarana sy fitantanana ireo kaontenera Docker.

Fanamarihana! Docker dia zaraina eo ambanin'ny lisansa Apache 2.0.

Architecture Docker

Docker dia mampiasa rafitra client-server. Ny mpanjifa Docker dia mifandray amin'ny daemon Docker, izay mitondra ny enta-mavesatra amin'ny famoronana, fampandehanana ary fizarana ny fitoeranao. Ny mpanjifa sy ny mpizara dia afaka mandeha amin'ny rafitra iray ihany, azonao atao ny mampifandray ny mpanjifa amin'ny daemon docker lavitra. Mifandray amin'ny alàlan'ny socket na RESTful API ny mpanjifa sy ny mpizara.

Fahatakarana ny Docker

Docker daemon

Araka ny aseho amin'ny sary, ny daemon dia mandeha amin'ny milina mpampiantrano. Ny mpampiasa dia tsy mifandray mivantana amin'ny mpizara, fa mampiasa ny mpanjifa amin'izany.

Docker mpanjifa

Ny mpanjifa Docker, ny programa docker, no interface tsara ho an'ny Docker. Mandray baiko avy amin'ny mpampiasa izy ary mifandray amin'ny daemon docker.

Docker anatiny

Mba hahatakarana izay misy ny docker dia mila mahafantatra singa telo ianao:

  • sary
  • lisitra
  • fitoeran

Ireo sary

Ny sary Docker dia maodely vakiana fotsiny. Ohatra, ny sary dia mety ahitana ny rafitra fandidiana Ubuntu miaraka amin'ny Apache sy ny fampiharana eo aminy. Ny sary dia ampiasaina mba hamoronana kaontenera. Manamora ny famoronana sary vaovao, manavao ny efa misy, na afaka misintona sary noforonin'ny olon-kafa ny Docker. Ny sary dia singa amin'ny fananganana docker.

Ny fisoratana anarana

Ny rejistra Docker dia mitahiry sary. Misy rejisitra ho an'ny daholobe sy tsy miankina izay ahafahanao misintona na mampakatra sary. Ny rejisitry ny Docker ho an'ny daholobe dia Hub docker. Misy fanangonana sary be dia be voatahiry ao. Araka ny fantatrao dia azonao atao ny mamorona sary na azonao ampiasaina ny sary noforonin'ny hafa. Ny rejistra dia singa fizarana.

fitoeran

Ny kaontenera dia mitovy amin'ny lahatahiry. Ny kaontenera dia ahitana ny zavatra rehetra ilain'ny fampiharana. Ny kaontenera tsirairay dia noforonina avy amin'ny sary. Azo noforonina, natomboka, najanona, nafindrafindra na fafana ny fitoeran-javatra. Ny kaontenera tsirairay dia mitokana ary manome sehatra azo antoka ho an'ny fampiharana. Ny kaontenera dia singa amin'ny asa.

Ka ahoana no fiasan'i Docker?

Hatreto dia fantatsika fa:

  • afaka mamorona sary misy ny fampiharana misy antsika isika;
  • afaka mamorona kaontenera avy amin'ny sary isika mba hampandehanana fampiharana;
  • Afaka mizara sary amin'ny alàlan'ny Docker Hub na rejisitra sary hafa izahay.

Andeha hojerentsika ny fomba mifanaraka amin'ireo singa ireo.

Ahoana no fiasan'ny sary?

Efa fantatsika fa ny sary dia môdely vakiana fotsiny izay namoronana container. Ny sary tsirairay dia misy ambaratonga maromaro. Docker mampiasa rafitra fichier union hanambatra ireo ambaratonga ireo ho sary iray. Ny rafitra fichier Union dia ahafahan'ny rakitra sy ny lahatahiry avy amin'ny rafitra fichier samihafa (sampana samihafa) mifanipaka mangarahara, mamorona rafitra fichier mirindra.

Ny iray amin'ireo antony mahatonga ny docker maivana dia noho izy mampiasa sosona tahaka izao. Rehefa manova ny sary ianao, toy ny fanavaozana fampiharana, dia misy sosona vaovao noforonina. Noho izany, raha tsy manolo ny sary iray manontolo na manangana azy, araka ny mety ho ifandraisanao amin'ny milina virtoaly, dia ny sosona ihany no ampiana na havaozina. Ary tsy voatery mizara ny sary vaovao manontolo ianao fa ny fanavaozana ihany no zaraina, manamora sy haingana kokoa ny fizarana sary.

Ao afovoan'ny sary tsirairay dia misy sary fototra. Ohatra, ubuntu, sarin'ny Ubuntu, na fedora, sarin'ny fizarana Fedora. Azonao atao koa ny mampiasa sary ho fototry ny famoronana sary vaovao. Ohatra, raha manana sary apache ianao dia azonao ampiasaina ho sary fototra ho an'ny rindranasa tranonkalanao.

Fanamarihana! Matetika ny Docker dia misintona sary avy amin'ny rejisitra Docker Hub.

Ny sary Docker dia azo noforonina avy amin'ireo sary fototra ireo; antsointsika ny dingana hamoronana ireo sary ireo. Ny torolalana tsirairay dia mamorona sary na ambaratonga vaovao. Ny toromarika dia ho toy izao manaraka izao:

  • mihazakazaka baiko
  • manampy rakitra na lahatahiry
  • mamorona fari-piainana manodidina
  • torolalana amin'izay tokony hatao rehefa alefa ny fitoeran'ity sary ity

Ireo torolalana ireo dia voatahiry ao anaty rakitra Dockerfile. Mamaky izany i Docker Dockerfile, rehefa manangana ny sary ianao dia tanteraho ireo toromarika ireo ary avereno ilay sary farany.

Ahoana no fiasan'ny rejistra docker?

Ny rejisitra dia tahiry ho an'ny sary docker. Rehefa vita ny sary dia azonao atao ny mamoaka azy amin'ny rejisitra Docker Hub ho an'ny daholobe na amin'ny rejisitra manokana anao.

Miaraka amin'ny mpanjifa docker, azonao atao ny mikaroka sary efa navoaka ary misintona azy ireo amin'ny milina docker anao hamorona container.

Docker Hub dia manome fitahirizana sary ho an'ny daholobe sy tsy miankina. Afaka mikaroka sy misintona sary avy amin'ny tahiry ho an'ny daholobe ny rehetra. Ny votoatin'ny fitahirizana manokana dia tsy tafiditra ao amin'ny valin'ny fikarohana. Ary ianao sy ny mpampiasa anao ihany no afaka mahazo ireo sary ireo ary mamorona fitoeran-javatra avy amin'izy ireo.

Ahoana no fiasan'ny container?

Ny kaontenera dia misy rafitra miasa, rakitra mpampiasa ary metadata. Araka ny fantatsika, ny fitoeran-javatra tsirairay dia noforonina avy amin'ny sary. Ity sary ity dia milaza amin'ny docker hoe inona no ao anaty container, inona no dingana tokony hatomboka, rehefa manomboka ny container ary angon-drakitra hafa. Ny sary Docker dia vakiana fotsiny. Rehefa manomboka fitoeran-javatra ny docker dia mamorona sosona mamaky/manoratra eo ambonin'ny sary (mampiasa ny rafitra fichier union araka ny voalaza teo aloha) izay ahafahan'ny fampiharana.

Inona no mitranga rehefa manomboka ny kaontenera?

Na mampiasa ny programa docker, na amin'ny fampiasana ny RESTful API, ny mpanjifa docker dia miteny amin'ny daemon docker hanomboka ny container.

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

Andeha hojerentsika ity baiko ity. Ny mpanjifa dia manomboka mampiasa ny baiko docker, miaraka amin'ny safidy run, izay milaza fa hisy kaontenera vaovao havoaka. Ireto toetra manaraka ireto ny fepetra takiana ambany indrindra amin'ny fametrahana container:

  • izay sary ampiasaina hamoronana ny fitoeran-javatra. Raha ny antsika ubuntu
  • ny baiko tianao halefa rehefa manomboka ny container. Raha ny antsika /bin/bash

Inona no mitranga eo ambanin'ny saron-tava rehefa manatanteraka io baiko io isika?

Docker, araka ny filaharany, dia manao izao manaraka izao:

  • maka ny sary ubuntu: Docker manamarina ny fisian'ny sary ubuntu amin'ny milina eo an-toerana, ary raha tsy eo izany, dia alaivo avy amin'ny Hub docker. Raha misy sary, dia mampiasa azy io mba hamoronana fitoeran-javatra;
  • mamorona container: rehefa voaray ny sary, dia mampiasa azy io ny docker mba hamoronana container;
  • manomboka ny rafi-drakitra ary mametraka ny ambaratonga vakiana fotsiny: ny kaontenera dia noforonina ao amin'ny rafi-drakitra ary ny sary dia ampiana amin'ny ambaratonga vakiana fotsiny;
  • manomboka ny tambajotra/tetezana: mamorona interface interface izay ahafahan'ny docker mifandray amin'ny milina mpampiantrano;
  • Fametrahana ny adiresy IP: mahita sy mametraka ny adiresy;
  • Manomboka ny dingana voafaritra: manomboka ny fampiharana anao;
  • Manamboatra sy mamokatra vokatra avy amin'ny fampiharanao: mampifandray sy mirakitra an-tsoratra ny fampidiran-dresaka mahazatra, ny fivoahana ary ny lalan'ny hadisoana mba hahafahanao manara-maso ny fandehan'ny fampiharanao.

Manana kaontenera miasa ianao izao. Azonao atao ny mitantana ny fitoeranao, mifandray amin'ny fampiharanao. Rehefa manapa-kevitra ny hampiato ny fampiharana ianao dia vonoy ny fitoeran-javatra.

Teknolojia ampiasaina

Docker dia voasoratra ao amin'ny Go ary mampiasa endri-javatra sasany amin'ny kernel Linux mba hampiharana ny fiasa etsy ambony.

anaran-tsehatra

Docker dia mampiasa teknolojia namespaces mba handaminana toeram-piasana mitoka-monina, izay antsoinay hoe container. Rehefa manomboka kaontenera isika, ny docker dia mamorona toeran'ny anarana ho an'io container io.

Mamorona sosona mitoka-monina izany, miaraka amin'ny lafiny tsirairay amin'ny kaontenera mandeha amin'ny toerana misy azy manokana ary tsy manana fidirana amin'ny rafitra ivelany.

Lisitry ny toerana misy anarana sasany ampiasain'ny docker:

  • pid: mitoka-monina ny dingana;
  • fandrika harato: ho an'ny fitantanana ny fifandraisana amin'ny tambajotra;
  • ipc: hitantana ny loharanon-karena IPC. (ICP: InterProccess Communication);
  • mnt: mitantana teboka tendrombohitra;
  • UTC: hanokana ny kernel sy ny famokarana dikan-teny (UTC: Unix timesharing system).

Vondrona mifehy

Docker koa dia mampiasa teknolojia cgroups na vondrona mpanara-maso. Ny fanalahidin'ny fampandehanana fampiharana mitokana dia ny manome ny rindranasa miaraka amin'ireo loharano tianao homena ihany. Izany dia miantoka fa ny kaontenera dia ho mpifanolo-bodirindrina tsara. Ny vondrona fanaraha-maso dia ahafahanao mizara loharanon-karena misy ary, raha ilaina, mametra fetra sy fameperana. Ohatra, ferana ny haben'ny fitadidiana mety ho an'ny fitoeran-javatra.

Union File System

Union File Sysem na UnionFS dia rafitra rakitra miasa amin'ny famoronana sosona, mahatonga azy ho maivana sy haingana. Docker dia mampiasa UnionFS mba hamoronana ireo sakana izay nanamboarana ny container. Docker dia afaka mampiasa variana maromaro amin'ny UnionFS ao anatin'izany: AUFS, btrfs, vfs ary DeviceMapper.

Endriky ny kaontenera

Docker dia manambatra ireo singa ireo ao anaty fonosana antsoina hoe format container. Ny endrika default dia antsoina libcontainer. Docker koa dia manohana ny format container nentim-paharazana amin'ny Linux mampiasa LXC. Amin'ny ho avy, Docker dia mety hanohana endrika fitahirizana hafa. Ohatra, ny fampidirana amin'ny BSD Jails na Solaris Zones.

Source: www.habr.com

Add a comment