Malamalama Docker

Sa ou faʻaaogaina Docker mo le tele o masina i le taimi nei e faʻatulagaina ai le atinaʻeina / faʻapipiʻiina o galuega i luga ole laiga. Ou te ofoina atu i le aufaitau Habrakhabr se faaliliuga o le folasaga tala e uiga i le docker - "Malamalama i le faife'au".

O le a le faife'au?

Docker o se faʻasalalauga tatala mo le atinaʻeina, tuʻuina atu, ma le faʻaogaina o talosaga. Ua mamanuina Docker e momoli vave au tusi talosaga. Faatasi ai ma le Docker, e mafai ona e faʻamavae lau talosaga mai au atinaʻe ma faʻaogaina le atinaʻe e pei o se faʻaoga pulea. E fesoasoani le Docker ia te oe e vave lafo lau code, faʻataʻitaʻi vave, faʻapipiʻi vave talosaga, ma faʻaitiitia le taimi i le va o le tusitusi code ma le code running. E faia e Docker lenei mea e ala i se pusa mama mama virtualization platform, faʻaogaina faiga ma mea aoga e fesoasoani ia te oe e pulea ma tuʻuina atu au talosaga.

I lona 'autu, e fa'atagaina oe e faife'au e toetoe lava o so'o se talosaga, fa'amavae saogalemu i totonu o se atigipusa. O le fa'aesea saogalemu e mafai ai ona e fa'agaoioia le tele o koneteina i luga o le fale e tasi i le taimi e tasi. O le natura mama o le atigipusa, lea e alu e aunoa ma se avega faaopoopo o se hypervisor, e mafai ai ona e maua atili mai au meafaigaluega.

E mafai ona aoga le container virtualization platform ma meafaigaluega i tulaga nei:

  • fa'apipi'i lau talosaga (ma vaega e te fa'aogaina) i totonu o pusa fa'atau;
  • tufatufaina ma tu'u atu o atigipusa nei i au 'au mo le atina'eina ma le su'ega;
  • fa'ata'atia atu nei atigipusa i luga o au 'upega tafa'ilagi, i totonu o fa'amaumauga ma i ao.

O le a se mea e mafai ona ou faʻaogaina ai le faʻailoga?

Fa'asalalau vave au tusi talosaga

E lelei tele le Docker mo le faʻatulagaina o le taamilosaga atinaʻe. Docker fa'atagaina tagata atia'e e fa'atautaia koneteina fa'apitonu'u ma fa'aoga ma tautua. Le mea mulimuli ane e mafai ai e oe ona tuʻufaʻatasia ma le faʻagasologa o le faʻaauauina faʻatasi ma le faʻaogaina o galuega.

Mo se faʻataʻitaʻiga, o au atiaʻe e tusi tulafono faʻapitonuʻu ma faʻasoa a latou faʻaputuga atinaʻe (se seti o ata Docker) ma au uo. A latou sauni, latou te tuleia le code ma koneteina i le nofoaga o le suʻega ma faʻatautaia soʻo se suʻega talafeagai. Mai le nofoaga o suʻega, e mafai ona latou lafoina code ma ata i le gaosiga.

Faʻafaigofie ona faʻapipiʻi ma faʻaalia

O le fa'apipi'i fa'apipi'i fa'apipi'i e fa'afaigofie ai ona fa'aulu lau uta. O pusa Docker e mafai ona taʻavale i luga o lau masini faʻapitonuʻu, pe moni pe i luga o se masini komepiuta i totonu o se nofoaga autu o faʻamatalaga, poʻo le ao.

O le gafatia ma le mama le natura o le docker e faigofie ai ona faʻatautaia lau galuega. E mafai ona e faʻaogaina le docker e faʻapipiʻi pe tapuni lau talosaga poʻo auʻaunaga. Ole saoasaoa ole docker e mafai ai ona faia lenei mea ile taimi lata mai.

O uta maualuga ma sili atu uta

Docker e mama ma vave. E maua ai se mea e mafai ona fa'aleleia, taugofie i le fa'aogaina ole hypervisor-based machines. E sili ona aoga i siosiomaga maualuga, mo se faʻataʻitaʻiga, pe a fatuina lau oe lava ao poʻo le faʻavae-as-service. Ae e aoga foi mo talosaga laiti ma feololo pe a e manaʻo e faʻateleina mea mai punaoa o loʻo ia te oe.

Vaega Autu Docker

Docker e aofia ai vaega autu e lua:

  • Docker: o se faʻasalalauga faʻapitoa faʻamatalaga tatala;
  • Docker Hub: O la matou faʻavae-o-se-auʻaunaga mo le tufatufaina ma le puleaina o pusa Docker.

Manatua! O loʻo tufatufa atu Docker i lalo ole laisene Apache 2.0.

Faiga faufale Docker

O lo'o fa'aogaina e le Docker se fa'ata'ita'iga a le tagata-server. O le Docker client e fesoʻotaʻi ma le Docker daemon, lea e tauaveina le avega o le fatuina, taʻavale, ma le tufatufaina o au koneteina. E mafai ona tamomoe uma le kalani ma le server i luga o le faiga e tasi, e mafai ona e faʻafesoʻotaʻi le kalani i se daemon docker mamao. E feso'ota'i le kalani ma le 'au'aunaga e ala i se socket po'o se RESTful API.

Malamalama Docker

Docker daemon

E pei ona faʻaalia i le ata, o le daemon e tamoe i luga o le masini talimalo. E le fegalegaleai sa'o le tagata fa'aoga ma le 'au'aunaga, ae fa'aoga le kalani mo lenei mea.

Docker client

O le Docker client, o le docker program, o le autu autu lea i Docker. Na te mauaina faʻatonuga mai le tagata faʻaoga ma fegalegaleai ma le docker daemon.

I totonu docker

Ina ia malamalama i mea o loʻo i ai le docker, e tatau ona e iloa e uiga i vaega e tolu:

  • ata
  • resitala
  • koneteina

Ata

O le ata Docker o se faʻataʻitaʻiga naʻo le faitau. Mo se faʻataʻitaʻiga, o le ata e mafai ona aofia ai le Ubuntu operating system ma Apache ma se talosaga i luga. E fa'aogaina ata e fai ai pusa. Fa'afaigofie e Docker ona fai ata fou, fa'afou ata o iai, pe mafai fo'i ona e siiina ata na faia e isi tagata. O ata o vaega ia o se fale faufale.

Le resitala

O le resitala a Docker e teu ai ata. O lo'o iai resitara fa'alaua'itele ma tuma'oti e mafai ona e siiina mai ai pe fa'ae'e ata. O le resitala a Docker lautele o le Docker hub. O loʻo i ai se aofaʻiga tele o ata o loʻo teuina iina. E pei ona e iloa, o ata e mafai ona e faia pe mafai foi ona e faʻaogaina ata na faia e isi. O Resitala o se vaega tufatufaina.

Koneteina

Containers e tutusa ma directories. O pusa o lo'o i ai mea uma e mana'omia e le talosaga e fa'atino ai. O atigipusa taʻitasi e faia mai se ata. O pusa e mafai ona fai, amata, taofi, femalaga'i pe tape. O atigipusa taʻitasi e tuʻufua ma maua ai se tulaga malupuipuia mo le faʻaoga. O koneteina o vaega ia o le galuega.

E faʻafefea la ona galue Docker?

I le taimi nei ua tatou iloa e faapea:

  • e mafai ona tatou fatuina ata o loʻo i ai a tatou talosaga;
  • e mafai ona tatou faia ni koneteina mai ata e faʻatautaia ai talosaga;
  • E mafai ona matou tufatufaina ata e ala i le Docker Hub poʻo se isi resitala ata.

Se'i tatou va'ai pe fa'afefea ona fetaui lelei vaega nei.

E faapefea ona galue le ata?

Ua uma ona tatou iloa o se ata o se faʻataʻitaʻiga naʻo le faitau lea e fai ai se atigipusa. O ata taitasi e iai se seti o tulaga. Fa'aaoga e Docker faiga faila iuni e tu'ufa'atasia nei tulaga i se ata e tasi. Ole faiga o faila a le Iuni e mafai ai e faila ma fa'atonuga mai faiga faila eseese (ese'ese lala) e fa'alava manino, ma fa'atupuina ai se faiga faila e fetaui lelei.

O se tasi o mafuaʻaga e mama ai le docker ona o loʻo faʻaaogaina laulau faʻapenei. A e suia le ata, e pei o le faʻafouina o se talosaga, e faia ai se laulau fou. O lea, e aunoa ma le suia o le ata atoa poʻo le toe fausia, e pei ona e faia i se masini masini, naʻo le faʻapipiʻi e faʻaopoopo pe faʻafouina. Ma e le tatau ona e tufatufa atu le ata fou atoa, naʻo le faʻafouga e tufatufaina, faʻafaigofie ma vave ona tufatufaina ata.

I le fatu o ata uma o se ata faavae. Mo se faʻataʻitaʻiga, ubuntu, o le ata faavae o le Ubuntu, poʻo le fedora, o le ata faavae o le tufatufaina Fedora. E mafai foi ona e faʻaogaina ata e fai ma faʻavae mo le fatuina o ata fou. Mo se faʻataʻitaʻiga, afai e iai sau ata apache, e mafai ona e faʻaaogaina e fai ma ata faʻavae mo au talosaga i luga o le initaneti.

Manatua! E masani ona toso e Docker ata mai le resitala o Docker Hub.

E mafai ona faia ata Docker mai nei ata faavae matou te taʻua laasaga e fai ai nei ata faatonuga. O faʻatonuga taʻitasi e fatuina ai se ata fou poʻo se tulaga. O fa'atonuga o le a fa'apea:

  • tamo'e poloaiga
  • fa'aopoopoina se faila po'o se fa'atonuga
  • fatuina o se siosiomaga fesuisuiai
  • faatonuga ile mea e tamo'e pe a fa'alauiloa le atigipusa o lenei ata

O nei faatonuga o lo'o teuina i totonu o se faila Dockerfile. Docker faitau lenei Dockerfile, pe a e fausia le ata, faʻatino nei faʻatonuga ma toe faʻafoʻi le ata mulimuli.

E fa'afefea ona galue le resitara fa'atau?

O le resitala o se fale teu mo ata docker. O le taimi lava e faia ai le ata, e mafai ona e faʻasalalau i le ofisa Docker Hub resitara poʻo lau lava resitala.

Faatasi ai ma le tagata faʻatau faʻatau, e mafai ona e suʻeina ata ua uma ona faʻasalalau ma sii mai i lau masini faʻapipiʻi e fai ai pusa.

O lo'o tu'uina atu e le Docker Hub fale teu ata fa'alaua'itele ma tuma'oti. Su'e ma la'u mai ata mai faleteuoloa lautele e avanoa mo tagata uma. O mea o lo'o i totonu o faleoloa tumaoti e le o aofia ai i fa'ai'uga o su'esu'ega. Ma e naʻo oe ma au tagata faʻaoga e mafai ona mauaina nei ata ma faia ni pusa mai ia i latou.

E fa'afefea ona galue se koneteina?

O se atigipusa e aofia ai se faiga faʻaoga, faila a tagata faʻaoga, ma metadata. E pei ona tatou iloa, o pusa taʻitasi e faia mai se ata. O lenei ata e taʻu atu i le docker mea o loʻo i totonu o le koneteina, o le a le faagasologa e amata ai, pe a amata le koneteina, ma isi faʻamatalaga faʻatulagaina. O le ata Docker e na'o le faitau. Pe a amata e le au fai meaʻai se atigipusa, e fatuina se laulau faitau / tusitusi i luga o le ata (faʻaaogaina le faila faila e pei ona taʻua muamua) lea e mafai ai ona faʻaoga le talosaga.

O le a le mea e tupu pe a amata le koneteina?

Poʻo le faʻaaogaina o le polokalame docker, po'o le fa'aogaina o le RESTful API, e ta'u atu e le tagata fai fa'atauga i le docker daemon e amata le koneteina.

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

Sei o tatou tilotilo i le poloaiga lenei. Ua fa'alauiloa le kalani e fa'aaoga ai le fa'atonuga docker, ma le filifiliga run, lea e fai mai o le a tatalaina se pusa fou. O mea la'ititi e mana'omia e fa'atino ai se koneteina o uiga nei:

  • o le fea ata e fa'aoga e fai ai le atigipusa. I lo tatou tulaga ubuntu
  • le fa'atonuga e te mana'o e fa'atino pe a amata le koneteina. I lo tatou tulaga /bin/bash

O le a le mea e tupu i lalo o le pulou pe a tatou faia lenei poloaiga?

Docker, i le faasologa, faia mea nei:

  • download le ata ubuntu: e siaki e le au faifa'ato'aga mo le maua o ata ubuntu i luga ole masini i le lotoifale, ma afai e le o iai, ona sii mai lea mai Docker hub. Afai ei ai se ata, e faʻaaogaina e fai ai se atigipusa;
  • faia se atigipusa: pe a maua le ata, e faʻaaogaina e Docker e fai ai se atigipusa;
  • amataina le faila faila ma fa'apipi'i le tulaga faitau-na'o: ua faia le atigipusa i totonu o le faila faila ma faʻaopoopo le ata i le tulaga faitau-naʻo;
  • amata le feso'ota'iga/alalaupapa: fa'atupuina se feso'ota'iga feso'ota'iga e mafai ai e le Docker ona feso'ota'i ma le masini talimalo;
  • Fa'atulaga le tuatusi IP: maua ma seti le tuatusi;
  • Amata le faiga fa'apitoa: tatala lau talosaga;
  • Fa'agasolo ma fa'atupu mea mai lau talosaga: fa'afeso'ota'i ma fa'amauina le fa'aoga masani a lau tusi talosaga, galuega fa'atino, ma le fa'asologa o mea sese ina ia mafai ai ona e va'ai pe fa'afefea lau talosaga.

O lea ua iai lau koneteina galue. E mafai ona e pulea lau koneteina, fegalegaleai ma lau talosaga. A e filifili e taofi le talosaga, tape le container.

Tekinolosi ua fa'aaogaina

Docker o loʻo tusia i le Go ma faʻaoga nisi o foliga o le Linux kernel e faʻatino ai galuega o loʻo i luga.

Avanoa igoa

Fa'aaoga e Docker tekinolosi namespaces e fa'atulaga avanoa faigaluega tu'ufua, lea e ta'ua o containers. A tatou amataina se atigipusa, e faia e le Docker se seti o igoa avanoa mo lena koneteina.

Ole mea lea e fa'atupu ai se vaega tu'ufua, fa'atasi ai ma itu ta'itasi o le atigipusa o lo'o tamomoe i lona lava igoa avanoa ma e leai se avanoa i fafo atu.

Lisi o nisi igoa avanoa e faʻaogaina e le docker:

  • pid: ia tuueseeseina le faagasologa;
  • upega: mo le puleaina o fesoʻotaʻiga fesoʻotaʻiga;
  • ipc: e pulea punaoa IPC. (ICP: InterProccess Communication);
  • mnt: ia pulea nofoaga mautu;
  • utc: e fa'aesea le fatu ma le fa'atonutonuina o fa'asologa o fa'asologa (UTC: Unix timesharing system).

Pulea vaega

E faʻaaogaina foi e Docker tekinolosi cgroups po'o vaega fa'atonutonu. O le ki i le fa'agaoioia o se talosaga i le tu'ua'ese'ese o le tu'uina atu lea o le talosaga i na'o mea e te mana'o e tu'uina atu. O le mea lea e mautinoa ai o pusa o le a avea ma tuaoi lelei. O kulupu fa'atonutonu e fa'atagaina oe e fa'asoa fa'asoa mea faigaluega ma, pe a mana'omia, seti tapula'a ma tapula'a. Mo se faʻataʻitaʻiga, faʻatapulaʻa le aofaʻi e mafai ona manatua mo le koneteina.

Union File System

Union File Sysem poʻo UnionFS o se faila faila e galue e ala i le fatuina o laulau, e mama tele ma vave. Fa'aaoga e Docker le UnionFS e fai ai poloka e fausia ai le atigipusa. E mafai e Docker ona faʻaogaina le tele o fesuiaiga o UnionFS e aofia ai: AUFS, btrfs, vfs ma DeviceMapper.

Faiga o koneteina

O lo'o tu'ufa'atasia e Docker nei vaega i totonu o se afifi matou te ta'ua o le fa'aputuina. Ua ta'ua le faatulagaga masani libcontainer. E lagolagoina foʻi e Docker le faʻatulagaina o pusa masani i luga ole Linux faʻaoga LXC. I le lumanaʻi, e mafai e Docker ona lagolagoina isi faʻailoga pusa. Mo se faʻataʻitaʻiga, tuʻufaʻatasia ma BSD Jails poʻo Solaris Zones.

puna: www.habr.com

Faaopoopo i ai se faamatalaga