A' tuigsinn Docker

Tha mi air a bhith a’ cleachdadh Docker airson grunn mhìosan a-nis gus structar a dhèanamh air pròiseas leasachaidh / lìbhrigidh phròiseactan lìn. Bidh mi a’ tabhann eadar-theangachadh den artaigil tòiseachaidh mu docker do leughadairean Habrakhabr - "Tuigsinn docker".

Dè th' ann an docker?

Tha Docker na àrd-ùrlar fosgailte airson a bhith a’ leasachadh, a’ lìbhrigeadh agus ag obrachadh thagraidhean. Tha Docker air a dhealbhadh gus na tagraidhean agad a lìbhrigeadh nas luaithe. Le docker, faodaidh tu an tagradh agad a dhì-cheangal bhon bhun-structar agad agus dèiligeadh ris a’ bhun-structar mar thagradh fo stiùir. Cuidichidh Docker thu gus do chòd a chuir air falbh nas luaithe, dèan deuchainn nas luaithe, cuir tagraidhean air falbh nas luaithe, agus lughdaich an ùine eadar còd sgrìobhaidh agus còd ruith. Bidh Docker a’ dèanamh seo tro àrd-ùrlar virtualization container aotrom, a’ cleachdadh pròiseasan agus goireasan a chuidicheas tu gus na tagraidhean agad a riaghladh agus aoigheachd a thoirt dhaibh.

Aig a chridhe, leigidh docker leat cha mhòr tagradh sam bith a ruith, gu sàbhailte ann an soitheach. Leigidh aonaranachd tèarainte leat mòran shoithichean a ruith air an aon òstair aig an aon àm. Tha nàdar aotrom an t-soithich, a tha a 'ruith às aonais an eallach a bharrachd de hypervisor, a' toirt cothrom dhut barrachd fhaighinn a-mach às a 'bhathar-chruaidh agad.

Faodaidh an àrd-ùrlar virtualization container agus innealan a bhith feumail anns na cùisean a leanas:

  • pacadh an tagradh agad (agus na co-phàirtean a bhios tu a’ cleachdadh) ann an soithichean docker;
  • cuairteachadh agus lìbhrigeadh nan soithichean sin gu na sgiobaidhean agad airson leasachadh agus deuchainn;
  • a’ cur a-mach na soithichean sin air na làraich riochdachaidh agad, an dà chuid ann an ionadan dàta agus anns na sgòthan.

Dè as urrainn dhomh docker a chleachdadh?

Foillsich na tagraidhean agad gu sgiobalta

Tha Docker air leth math airson a’ chearcall leasachaidh a chuir air dòigh. Leigidh Docker le luchd-leasachaidh soithichean ionadail a ruith le tagraidhean agus seirbheisean. A leigeas leat an uairsin amalachadh leis a’ phròiseas de shruth-obrach amalachaidh is cleachdadh leantainneach.

Mar eisimpleir, bidh an luchd-leasachaidh agad a’ sgrìobhadh còd gu h-ionadail agus a’ roinn an stac leasachaidh (seata de dhealbhan Docker) le co-obraichean. Nuair a bhios iad deiseil, bidh iad a’ putadh a’ chòd agus na soithichean chun làrach deuchainn agus a’ ruith deuchainnean riatanach sam bith. Bhon làrach deuchainn, faodaidh iad còd agus ìomhaighean a chuir gu cinneasachadh.

Furasta a chuir a-mach agus a leudachadh

Tha an àrd-ùrlar stèidhichte air soithichean docker ga dhèanamh furasta do eallach pàighidh a ghiùlan. Faodaidh soithichean docker ruith air an inneal ionadail agad, an dàrna cuid fìor no air inneal brìgheil ann an ionad dàta, no san sgòth.

Tha comas giùlain agus nàdar aotrom docker ga dhèanamh furasta an eallach obrach agad a riaghladh gu beothail. Faodaidh tu docker a chleachdadh gus an tagradh no na seirbheisean agad a chleachdadh no a dhùnadh sìos. Tha astar an docker a’ leigeil le seo a dhèanamh ann an faisg air fìor-ùine.

Luchdan nas àirde agus barrachd luchdan pàighidh

Tha docker aotrom agus luath. Tha e a’ toirt seachad roghainn tapaidh, cosg-èifeachdach an àite innealan brìgheil stèidhichte air hypervisor. Tha e gu sònraichte feumail ann an àrainneachdan làn luchd, mar eisimpleir, nuair a chruthaicheas tu do sgòth fhèin no àrd-ùrlar mar sheirbheis. Ach tha e feumail cuideachd airson tagraidhean beaga is meadhanach nuair a tha thu airson barrachd fhaighinn a-mach às na goireasan a th’ agad.

Prìomh phàirtean Docker

Tha dà phrìomh phàirt aig Docker:

  • Docker: àrd-ùrlar virtualization stòr fosgailte;
  • Docker Hub: An àrd-ùrlar-mar-a-seirbheis againn airson a bhith a’ cuairteachadh agus a’ riaghladh shoithichean Docker.

Thoir an aire! Tha Docker air a chuairteachadh fo chead Apache 2.0.

Ailtireachd docker

Bidh Docker a’ cleachdadh ailtireachd frithealaiche teachdaiche. Bidh an neach-dèiligidh Docker a’ conaltradh le daemon an Docker, a bhios a’ gabhail uallach airson na soithichean agad a chruthachadh, a ruith agus a sgaoileadh. Faodaidh an dà chuid teachdaiche agus frithealaiche ruith air an aon shiostam, faodaidh tu an neach-dèiligidh a cheangal ri daemon docker iomallach. Bidh an neach-dèiligidh agus an frithealaiche a’ conaltradh tro socaid no RESTful API.

A' tuigsinn Docker

Daemon docker

Mar a chithear san dealbh, tha an daemon a 'ruith air an inneal aoigheachd. Chan eil an neach-cleachdaidh ag eadar-obrachadh leis an fhrithealaiche gu dìreach, ach bidh e a’ cleachdadh an neach-dèiligidh airson seo.

Cliant docker

Is e an neach-dèiligidh Docker, am prògram docker, am prìomh eadar-aghaidh ri Docker. Bidh e a’ faighinn òrdughan bhon neach-cleachdaidh agus ag eadar-obrachadh leis an daemon docker.

Taobh a-staigh docker

Gus tuigsinn dè a th 'ann an docker, feumaidh fios a bhith agad mu thrì phàirtean:

  • dealbhan
  • clàir
  • soithichean

Na h-ìomhaighean

Tha ìomhaigh an Docker na theamplaid leughaidh a-mhàin. Mar eisimpleir, is dòcha gu bheil siostam-obrachaidh Ubuntu le Apache agus tagradh air. Bidh dealbhan gan cleachdadh gus soithichean a chruthachadh. Tha Docker ga dhèanamh furasta ìomhaighean ùra a chruthachadh, an fheadhainn a th’ ann ùrachadh, no faodaidh tu ìomhaighean a chruthaich daoine eile a luchdachadh sìos. Tha ìomhaighean nam pàirtean de thogail docker.

An clàr

Bidh an Docker registry a’ stòradh dhealbhan. Tha clàran poblach is prìobhaideach ann às an urrainn dhut dealbhan a luchdachadh sìos no a luchdachadh suas. Tha clàr poblach Docker Hub Docker. Tha cruinneachadh mòr de dhealbhan air an stòradh an sin. Mar a tha fios agad, faodaidh tu ìomhaighean a chruthachadh leat fhèin no faodaidh tu ìomhaighean a chruthaich daoine eile a chleachdadh. Tha clàran nam pàirt sgaoilidh.

Containers

Tha soithichean coltach ri clàran. Ann an soithichean tha a h-uile dad a dh’ fheumas an aplacaid a ruith. Tha gach soitheach air a chruthachadh bho ìomhaigh. Faodar soithichean a chruthachadh, tòiseachadh, stad, imrich no cuir às. Tha gach soitheach aonaranach agus a’ toirt seachad àrd-ùrlar tèarainte airson an tagraidh. Tha soithichean nam pàirtean den obair.

Mar sin ciamar a tha Docker ag obair?

Gu ruige seo tha fios againn gu bheil:

  • faodaidh sinn ìomhaighean a chruthachadh anns a bheil na tagraidhean againn suidhichte;
  • is urrainn dhuinn soithichean a chruthachadh bho ìomhaighean gus tagraidhean a ruith;
  • Faodaidh sinn ìomhaighean a sgaoileadh tro Docker Hub no clàr dhealbhan eile.

Feuch sinn a-mach mar a tha na co-phàirtean sin a 'tighinn còmhla.

Ciamar a tha an ìomhaigh ag obair?

Tha fios againn mu thràth gur e teamplaid leughaidh a-mhàin a th’ ann an ìomhaigh às an tèid soitheach a chruthachadh. Tha seata de ìrean anns gach ìomhaigh. Docker a’ cleachdadh siostam faidhle aonaidh gus na h-ìrean sin a chur còmhla ann an aon ìomhaigh. Tha siostam faidhle an Aonaidh a’ leigeil le faidhlichean agus clàran bho dhiofar shiostaman faidhle (diofar mheuran) a dhol thairis air gu follaiseach, a’ cruthachadh siostam faidhle ciallach.

Is e aon de na h-adhbharan gu bheil docker aotrom air sgàth gu bheil e a’ cleachdadh sreathan mar seo. Nuair a dh’ atharraicheas tu an ìomhaigh, leithid ùrachadh tagradh, thèid sreath ùr a chruthachadh. Mar sin, gun a bhith ag ath-nuadhachadh an ìomhaigh gu lèir no ga ath-thogail, mar a dh’ fhaodadh a bhith agad le inneal brìgheil, chan eil ach an còmhdach air a chur ris no air ùrachadh. Agus chan fheum thu an ìomhaigh ùr gu lèir a sgaoileadh, chan eil ach an ùrachadh air a chuairteachadh, ga dhèanamh nas fhasa agus nas luaithe ìomhaighean a sgaoileadh.

Aig cridhe gach ìomhaigh tha ìomhaigh bunaiteach. Mar eisimpleir, ubuntu, an ìomhaigh bhunaiteach de Ubuntu, no fedora, an ìomhaigh bhunaiteach de chuairteachadh Fedora. Faodaidh tu cuideachd ìomhaighean a chleachdadh mar bhunait airson ìomhaighean ùra a chruthachadh. Mar eisimpleir, ma tha ìomhaigh apache agad, faodaidh tu a chleachdadh mar ìomhaigh bunaiteach airson na tagraidhean lìn agad.

Thoir an aire! Mar as trice bidh Docker a’ tarraing ìomhaighean bho chlàr Docker Hub.

Faodar ìomhaighean docker a chruthachadh bho na h-ìomhaighean bunaiteach sin; canaidh sinn na ceumannan gus na h-ìomhaighean sin a chruthachadh. Bidh gach stiùireadh a’ cruthachadh ìomhaigh no ìre ùr. Bidh an stiùireadh mar a leanas:

  • ruith àithne
  • cuir faidhle no eòlaire ris
  • cruthachadh caochladair àrainneachd
  • stiùireadh air dè bu chòir a ruith nuair a thèid soitheach na h-ìomhaigh seo a chuir air bhog

Tha an stiùireadh seo air a stòradh ann am faidhle Dockerfile. Bidh Docker a’ leughadh seo Dockerfile, nuair a thogas tu an ìomhaigh, cuir an gnìomh an stiùireadh seo agus tillidh e an dealbh mu dheireadh.

Ciamar a tha an clàr docker ag obair?

Tha an clàr na stòr airson ìomhaighean docker. Aon uair ‘s gu bheil an ìomhaigh air a chruthachadh, faodaidh tu fhoillseachadh don chlàr poblach Docker Hub no don chlàr pearsanta agad.

Leis an neach-dèiligidh docker, faodaidh tu ìomhaighean a chaidh fhoillseachadh mar-thà a lorg agus an luchdachadh sìos chun inneal docker agad gus soithichean a chruthachadh.

Bidh Docker Hub a’ toirt seachad stòran ìomhaigh poblach is prìobhaideach. Tha sgrùdadh agus luchdachadh sìos ìomhaighean bho stòran poblach ri fhaighinn don h-uile duine. Chan eil susbaint stòran prìobhaideach air a thoirt a-steach do na toraidhean rannsachaidh. Agus chan fhaod ach thu fhèin agus an luchd-cleachdaidh agad na h-ìomhaighean sin fhaighinn agus soithichean a chruthachadh bhuapa.

Ciamar a tha container ag obair?

Tha inneal air a dhèanamh suas de shiostam obrachaidh, faidhlichean cleachdaiche, agus meata-dàta. Mar a tha fios againn, tha gach soitheach air a chruthachadh bho ìomhaigh. Tha an ìomhaigh seo ag innse do docker dè a tha anns a’ ghobhar, dè am pròiseas a thòisicheas, cuin a thòisicheas an soitheach, agus dàta rèiteachaidh eile. Tha an dealbh Docker ri leughadh a-mhàin. Nuair a thòisicheas docker soitheach, cruthaichidh e còmhdach leughaidh / sgrìobhaidh air mullach na h-ìomhaigh (a’ cleachdadh siostam faidhle an aonaidh mar a chaidh a ràdh roimhe) anns am faodar an tagradh a ruith.

Dè thachras nuair a thòisicheas an soitheach?

No a 'cleachdadh a' phrògram docker, no a’ cleachdadh an RESTful API, tha an neach-dèiligidh docker ag innse don daemon docker an soitheach a thòiseachadh.

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

Bheir sinn sùil air an àithne seo. Tha an neach-dèiligidh air a chuir air bhog a’ cleachdadh an àithne docker, le roghainn run, a tha ag ràdh gun tèid soitheach ùr a chuir air bhog. Is e na riatanasan as ìsle airson soitheach a ruith na feartan a leanas:

  • dè an dealbh a chleachdadh gus an soitheach a chruthachadh. Anns a 'chùis againn ubuntu
  • an àithne a tha thu airson a ruith nuair a thòisicheas an soitheach. Anns a 'chùis againn /bin/bash

Dè thachras fon chochall nuair a ruitheas sinn an àithne seo?

Bidh Docker, ann an òrdugh, a’ dèanamh na leanas:

  • Luchdaich a-nuas an dealbh ubuntu sgrùdaidhean docker airson cothrom air ìomhaigh ubuntu air an inneal ionadail, agus mura h-eil e ann, an uairsin luchdaich sìos e bho Hub Docker. Ma tha ìomhaigh ann, bidh e ga chleachdadh gus soitheach a chruthachadh;
  • a 'cruthachadh soitheach: nuair a gheibhear an ìomhaigh, bidh docker ga chleachdadh gus soitheach a chruthachadh;
  • a’ tòiseachadh an siostam fhaidhlichean agus a’ cur suas na h-ìre leughaidh a-mhàin: tha an soitheach air a chruthachadh anns an t-siostam faidhle agus tha an ìomhaigh air a chur ris an ìre leughaidh a-mhàin;
  • a’ tòiseachadh an lìonra/drochaid: a 'cruthachadh eadar-aghaidh lìonra a leigeas le docker conaltradh leis an inneal aoigheachd;
  • A 'suidheachadh an seòladh IP: a 'lorg agus a' suidheachadh an t-seòlaidh;
  • A 'tòiseachadh air a' phròiseas ainmichte: a 'cur air bhog an tagradh agad;
  • Pròiseas agus cuir a-mach toradh bhon tagradh agad: a’ ceangal agus a’ logadh a-steach àbhaisteach, toradh, agus sruth mearachd an tagraidh agad gus an urrainn dhut sùil a chumail air mar a tha an tagradh agad a’ coileanadh.

Tha soitheach obrach agad a-nis. Faodaidh tu an soitheach agad a riaghladh, eadar-obrachadh leis an tagradh agad. Nuair a cho-dhùnas tu stad a chuir air an tagradh, cuir às don ghobhar.

Teicneòlasan cleachdte

Tha Docker sgrìobhte ann an Go agus a’ cleachdadh cuid de fheartan an kernel Linux gus an gnìomh gu h-àrd a chuir an gnìomh.

Àiteachan ainmean

Bidh Docker a’ cleachdadh teicneòlas namespaces gus àiteachan obrach iomallach a chuir air dòigh, ris an can sinn soithichean. Nuair a thòisicheas sinn air soitheach, bidh docker a’ cruthachadh seata de dh’ àiteachan ainmean airson a’ ghobhar sin.

Bidh seo a’ cruthachadh còmhdach iomallach, le gach taobh den t-soitheach a’ ruith na h-ainm fhèin agus gun a bhith a’ faighinn cothrom air an t-siostam a-muigh.

Liosta de chuid de dh’ ainmean-àite a bhios docker a’ cleachdadh:

  • pid: gus am pròiseas a sgaradh;
  • lìon: airson riaghladh eadar-aghaidh lìonra;
  • ipc: gus goireasan IPC a riaghladh. (ICP: InterProccess Communication);
  • mnt: gus puingean sreap a stiùireadh;
  • UTC: gus an kernel agus smachd a chumail air gineadh dreach (UTC: siostam roinneadh ùine Unix).

Buidhnean smachd

Bidh Docker cuideachd a’ cleachdadh teicneòlas cgroups no buidhnean smachd. Is e an rud as cudromaiche ann a bhith a’ ruith tagradh leis fhèin ach na goireasan a tha thu airson a thoirt seachad a thoirt don tagradh. Bidh seo a’ dèanamh cinnteach gum bi na soithichean nan deagh nàbaidhean. Leigidh buidhnean smachd leat goireasan bathar-cruaidh a tha rim faighinn a cho-roinn agus, ma tha sin riatanach, crìochan is cuingeachaidhean a shuidheachadh. Mar eisimpleir, cuingealaich an uiread de chuimhne a dh'fhaodadh a bhith ann airson a' ghobhar.

Aonadh siostam faidhle

Is e siostam faidhle a th’ ann an Union File Sysem no UnionFS a bhios ag obair le bhith a’ cruthachadh sreathan, ga dhèanamh gu math aotrom agus luath. Bidh Docker a’ cleachdadh UnionFS gus na blocaichean às an tèid an soitheach a thogail a chruthachadh. Faodaidh Docker grunn dhreachan de UnionFS a chleachdadh a’ toirt a-steach: AUFS, btrfs, vfs agus DeviceMapper.

Cruthan container

Bidh Docker a’ cothlamadh na co-phàirtean sin ann am pasgan ris an can sinn cruth an t-soithich. Canar an cruth bunaiteach libcontainer. Bidh Docker cuideachd a’ toirt taic don chruth container traidiseanta air Linux a’ cleachdadh LXC. Anns an àm ri teachd, is dòcha gun toir Docker taic do chruthan container eile. Mar eisimpleir, ag amalachadh le BSD Jails no Solaris Zones.

Source: www.habr.com

Cuir beachd ann