Ho utloisisa Docker

Ke qetile likhoeli tse 'maloa ke sebelisa Docker ho hlophisa ts'ebetso ea nts'etsopele / phepelo ea merero ea webo. Ke fa babali ba Habrakhabr phetolelo ea sengoloa sa selelekela mabapi le docker - "Utloisisa docker".

Docker ke eng?

Docker ke sethala se bulehileng sa ho nts'etsapele, ho tsamaisa, le ho sebetsa lits'ebetso. Docker e etselitsoe ho tlisa lits'ebetso tsa hau kapele. Ka docker, o ka hlakola kopo ea hau ho tsoa lits'ebetsong tsa hau mme oa tšoara lits'ebetso e le sesebelisoa se laoloang. Docker e o thusa ho romella khoutu ea hau kapele, ho etsa liteko kapele, ho tsamaisa lits'ebetso ka potlako, le ho fokotsa nako lipakeng tsa khoutu ea ho ngola le khoutu e sebetsang. Docker e etsa sena ka sethala sa lisebelisoa tse bobebe tse bobebe, e sebelisa lits'ebetso le lits'ebeletso tse u thusang ho laola le ho amohela lits'ebetso tsa hau.

Motheong oa eona, docker e u lumella ho tsamaisa hoo e batlang e le ts'ebeliso efe kapa efe, e arotsoe ka mokhoa o sireletsehileng ka sejaneng. Ho itšehla thajana ho sireletsehileng ho u lumella ho tsamaisa lijana tse ngata ho moamoheli a le mong ka nako e le 'ngoe. Boemo bo bobebe ba setshelo, bo tsamaeang ntle le moroalo o eketsehileng oa hypervisor, bo u lumella ho fumana ho hongata ho tsoa ho lisebelisoa tsa hau.

Sethala sa virtualization ea setshelo le lisebelisoa li ka ba molemo maemong a latelang:

  • ho paka kopo ea hau (le likarolo tseo u li sebelisang) ka lijaneng tsa docker;
  • kabo le phano ea linkho tsena ho lihlopha tsa hau bakeng sa nts'etsopele le liteko;
  • ho beha lijana tsena libakeng tsa hau tsa tlhahiso, ka bobeli litsing tsa data le marung.

Nka sebelisa docker bakeng sa eng?

Phatlalatsa likopo tsa hau kapele

Docker e ntle bakeng sa ho hlophisa potoloho ea nts'etsopele. Docker e lumella bahlahisi ho tsamaisa lijana tsa lehae ka lits'ebetso le lits'ebeletso. Eo ka mor'a moo e u lumellang hore u ikopanye le ts'ebetso ea ho kopanya e tsoelang pele le ho tsamaisa mosebetsi oa ho tsamaisa.

Mohlala, bahlahisi ba hau ba ngola khoutu sebakeng sa heno mme ba arolelana stack ea bona ea nts'etsopele (sete sa litšoantšo tsa Docker) le basebetsi-'moho. Ha ba se ba loketse, ba sutumelletsa khoutu le lijana sebakeng sa tlhahlobo ebe ba tsamaisa liteko life kapa life tse hlokahalang. Ho tloha sebakeng sa teko, ba ka romela khoutu le litšoantšo ho hlahisa.

Ho bonolo ho beha le ho phutholoha

Sethala se thehiloeng ho li-docker se etsa hore ho be bonolo ho tsamaisa mojaro oa hau oa moputso. Lits'oants'o tsa Docker li ka sebetsa mochining oa heno, ekaba oa 'nete kapa mochini o fumanehang setsing sa data, kapa marung.

Boemo bo bonolo le bo bobebe ba docker bo etsa hore ho be bonolo ho laola mosebetsi oa hau ka matla. U ka sebelisa docker ho tsamaisa kapa ho koala sesebelisoa kapa lits'ebeletso tsa hau. Lebelo la docker le lumella sena hore se etsoe haufi le nako ea nnete.

Meroalo e phahameng le meroalo e mengata ea meputso

Docker e bobebe ebile e potlakile. E fana ka mefuta e meng e tsitsitseng, e theko e tlaase ho feta mechine e sebetsang ea hypervisor-based. E bohlokoa haholo libakeng tse nang le meroalo e mengata, mohlala, ha u iketsetsa leru kapa sethala-joalo ka ts'ebeletso. Empa e boetse e na le thuso bakeng sa lits'ebetso tse nyane le tse mahareng ha u batla ho fumana ho feta mehloling eo u nang le eona.

Likarolo tse ka sehloohong tsa Docker

Docker e na le likarolo tse peli tsa mantlha:

  • Docker: sethala se bulehileng sa virtualization;
  • Docker Hub: Sethala sa rona-joaloka-ts'ebeletso bakeng sa ho aba le ho tsamaisa lijana tsa Docker.

Hlokomela! Docker e tsamaisoa tlas'a laesense ea Apache 2.0.

Mehaho ea Docker

Docker e sebelisa meralo ea bareki-server. Moreki oa Docker o buisana le daemon ea Docker, e nkang moroalo oa ho theha, ho tsamaisa le ho aba lijana tsa hau. Ka bobeli moreki le seva li ka sebetsa ka sistimi e ts'oanang, o ka hokela moreki ho daemon ea docker e hole. Moreki le seva ba buisana ka sokete kapa RESTful API.

Ho utloisisa Docker

Docker daemon

Joalo ka ha ho bonts'itsoe setšoantšong, daemon e sebetsa mochining oa moamoheli. Mosebelisi ha a sebelisane le seva ka kotloloho, empa o sebelisa moreki bakeng sa sena.

Moreki oa Docker

Moreki oa Docker, lenaneo la docker, ke sebopeho sa mantlha sa Docker. E amohela litaelo ho tsoa ho mosebelisi mme e sebelisana le daemon ea docker.

Docker e ka hare

Ho utloisisa hore na docker e na le eng, o hloka ho tseba ka likarolo tse tharo:

  • litšoantšo
  • ngodisa
  • lik'hontheinara

Litšoantšo

Setšoantšo sa Docker ke template e baloang feela. Mohlala, setšoantšo se kanna sa ba le sistimi ea ts'ebetso ea Ubuntu e nang le Apache le sesebelisoa ho eona. Litšoantšo li sebelisoa ho etsa lijana. Docker e nolofalletsa ho etsa litšoantšo tse ncha, ho ntlafatsa tse seng li ntse li le teng, kapa u ka khoasolla litšoantšo tse entsoeng ke batho ba bang. Litšoantšo ke likarolo tsa mohaho oa docker.

Registry

Registry ea Docker e boloka litšoantšo. Ho na le liregistries tsa sechaba le tsa poraefete moo u ka khoasollang kapa oa kenya litšoantšo ho tsona. Ngoliso ea sechaba ea Docker ke Sebaka sa Docker. Ho na le pokello e kholo ea litšoantšo tse bolokiloeng moo. Joalo ka ha u tseba, litšoantšo li ka etsoa ke uena kapa u ka sebelisa litšoantšo tse entsoeng ke ba bang. Registries ke karolo ea kabo.

Lijana

Lijana li tšoana le li-directory. Li-container li na le tsohle tseo kopo e li hlokang ho sebetsa. Setshelo se seng le se seng se entsoe ho tsoa setšoantšong. Lijana li ka etsoa, ​​tsa qalisoa, tsa emisoa, tsa falla kapa tsa hlakoloa. Setshelo se seng le se seng se arotsoe 'me se fana ka sethala se sireletsehileng bakeng sa kopo. Lijana ke likarolo tsa mosebetsi.

Joale Docker e sebetsa joang?

Ho fihlela joale re tseba hore:

  • re ka etsa litšoantšo tseo likopo tsa rona li leng ho tsona;
  • re ka etsa lijana ho tsoa litšoantšong ho tsamaisa lits'ebetso;
  • Re ka tsamaisa litšoantšo ka Docker Hub kapa ngoliso e 'ngoe ea litšoantšo.

A re boneng hore na likarolo tsena li kopana joang.

Setšoantšo se sebetsa joang?

Re se re ntse re tseba hore sets'oants'o ke template ea ho bala feela eo sets'oants'o se entsoeng ka eona. Setšoantšo ka seng se na le sehlopha sa maemo. Docker e sebelisoa union file system ho kopanya maemo ana ho setšoantšo se le seng. Sistimi ea faele ea Union e lumella lifaele le li-directory tse tsoang lits'ebetsong tse fapaneng tsa lifaele (makala a fapaneng) ho kopana pepeneneng, ho theha sistimi e lumellanang ea faele.

Le leng la mabaka a etsang hore docker e be bobebe ke hobane e sebelisa likarolo tse kang tsena. Ha o fetola setšoantšo, joalo ka ho ntlafatsa ts'ebeliso, ho etsoa lera le lecha. Kahoo, ntle le ho nkela setšoantšo sohle sebaka kapa ho se aha bocha, joalo ka ha u ka tlameha ho etsa ka mochini o sebetsang, ke lera feela le eketsoang kapa le ntlafalitsoeng. 'Me ha ho hlokahale hore u aba setšoantšo se secha kaofela, ke ntlafatso feela e abuoang, e leng ho nolofalletsang le ho potlaka ho aba litšoantšo.

Bohareng ba setšoantšo se seng le se seng ke setšoantšo sa motheo. Mohlala, ubuntu, setšoantšo sa motheo sa Ubuntu, kapa fedora, setšoantšo sa motheo sa phepelo ea Fedora. U ka boela ua sebelisa litšoantšo e le motheo oa ho etsa litšoantšo tse ncha. Ka mohlala, haeba u na le setšoantšo sa apache, u ka se sebelisa e le setšoantšo sa motheo bakeng sa lisebelisoa tsa hau tsa marang-rang.

Hlokomela! Docker hangata e hula litšoantšo ho tsoa ho ngoliso ea Docker Hub.

Litšoantšo tsa Docker li ka etsoa ho tsoa litšoantšong tsena tsa motheo; re bitsa mehato ea ho theha litšoantšo tsena litaelo. Taelo ka 'ngoe e etsa setšoantšo kapa boemo bo bocha. Litaelo e tla ba tse latelang:

  • matha taelo
  • ho eketsa faele kapa directory
  • ho theha phetoho ya tikoloho
  • ditaelo mabapi le seo o lokelang ho se etsa ha setshelo sa setshwantsho sena se thakgolwa

Litaelo tsena li bolokiloe faeleng Dockerfile. Docker o bala sena Dockerfile, ha o haha ​​setšoantšo, o phethahatsa litaelo tsena mme o khutlisetsa setšoantšo sa ho qetela.

Registry ea docker e sebetsa joang?

Registry ke sebaka sa polokelo ea litšoantšo tsa docker. Hang ha setšoantšo se entsoe, u ka se phatlalatsa ho ngoliso ea sechaba ea Docker Hub kapa ho ngoliso ea hau.

Ka moreki oa li-docker, u ka batla litšoantšo tse seng li phatlalalitsoe ebe u li khoasolla mochining oa hau oa docker ho etsa lijana.

Docker Hub e fana ka polokelo ea litšoantšo ea sechaba le ea poraefete. Ho batla le ho khoasolla litšoantšo ho tsoa polokelong ea sechaba ho fumaneha ho bohle. Litaba tsa polokelo ea poraefete ha lia kenyelletsoa liphethong tsa lipatlisiso. 'Me ke uena feela le basebelisi ba hau ba ka amohelang litšoantšo tsena le ho etsa lijana ho tsona.

Setshelo se sebetsa joang?

Setshelo se na le sistimi e sebetsang, lifaele tsa mosebelisi le metadata. Joalo ka ha re tseba, setshelo se seng le se seng se entsoe ho tsoa setšoantšong. Setšoantšo sena se bolella docker se ka har'a setshelo, ts'ebetso efe e lokelang ho qala, ha setshelo se qala, le lintlha tse ling tsa tlhophiso. Setšoantšo sa Docker se baloa feela. Ha docker e qala setshelo, e theha sebaka sa ho bala / ho ngola ka holim'a setšoantšo (ho sebelisa sistimi ea faele ea bonngoe joalo ka ha ho boletsoe pejana) moo kopo e ka sebetsoang.

Ho etsahala'ng ha setshelo se qala?

Kapa ho sebelisa lenaneo docker, kapa a sebelisa RESTful API, moreki oa docker o bolella daemon ea docker ho qala setshelo.

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

A re hlahlobeng taelo ena. Moreki o qalisoa ho sebelisoa taelo docker, ka khetho run, e reng ho tla thakholoa setshelo se secha. Litlhoko tse fokolang tsa ho tsamaisa setshelo ke litšobotsi tse latelang:

  • setshoantsho se sebedisoang ho bopa setshelo. Tabeng ea rona ubuntu
  • taelo eo o batlang ho e sebetsa ha setshelo se qala. Tabeng ea rona /bin/bash

Ho etsahala'ng ka tlas'a hood ha re tsamaisa taelo ee?

Docker, ka tatellano, e etsa tse latelang:

  • jarolla setšoantšo sa ubuntu: docker e hlahloba hore na setšoantšo se teng ubuntu mochining oa lehae, 'me haeba e le sieo, e jarolle ho tsoa Sebaka sa Docker. Haeba ho na le setšoantšo, se se sebelisa ho etsa setshelo;
  • e etsa setshelo: ha setšoantšo se amoheloa, docker e se sebelisa ho etsa setshelo;
  • e qala sistimi ea lifaele mme e phahamisa boemo ba ho bala feela: setshelo se entsoe ka har'a sistimi ea faele mme setšoantšo se eketsoa ho boemo ba ho bala feela;
  • e qala marang-rang/borokho: e etsa marang-rang a marang-rang a lumellang docker ho buisana le mochine oa moeti;
  • Ho beha aterese ea IP: fumana le ho seta aterese;
  • E qala ts'ebetso e nepahetseng: e qala kopo ea hau;
  • E sebetsa le ho hlahisa tlhahiso ho tsoa ho sesebelisoa sa hau: e hokela le ho boloka litaba tse tloaelehileng tsa sesebelisoa sa hau, tlhahiso, le phallo ea liphoso hore o tsebe ho tseba hore na sesebelisoa sa hau se sebetsa joang.

Hona joale u na le setshelo se sebetsang. O ka laola setshelo sa hau, oa sebelisana le sesebelisoa sa hau. Ha u etsa qeto ea ho emisa kopo, hlakola setshelo.

Mahlale a sebelisitsoeng

Docker e ngotsoe ho Go mme e sebelisa likarolo tse ling tsa Linux kernel ho kenya tšebetsong ts'ebetso e kaholimo.

Libaka tsa mabitso

Docker e sebelisa theknoloji namespaces ho hlophisa libaka tsa mosebetsi tse ka thoko, tseo re li bitsang lijana. Ha re qala setshelo, docker e theha sete sa libaka tsa mabitso bakeng sa setshelo seo.

Sena se theha lera le ikhethileng, 'me karolo e' ngoe le e 'ngoe ea setshelo e sebetsa sebakeng sa eona sa mabitso mme e se na mokhoa oa ho kena tsamaisong ea kantle.

Lethathamo la libaka tse ling tsa mabitso tseo docker e li sebelisang:

  • pid: ho arola ts'ebetso;
  • net: bakeng sa ho laola marang-rang a marang-rang;
  • ipc: ho laola lisebelisoa tsa IPC. (ICP: InterProccess Communication);
  • mnt: ho laola libaka tsa lithaba;
  • UTC: ho arola mofuta oa kernel le taolo ea tlhahiso (UTC: Unix timesharing system).

Laola lihlopha

Docker e boetse e sebelisa theknoloji cgroups kapa lihlopha tsa taolo. Senotlelo sa ho tsamaisa ts'ebeliso ka thoko ke ho fana ka lisebelisoa feela tseo u batlang ho fana ka tsona. Sena se tiisa hore linkho e tla ba baahisani ba molemo. Lihlopha tsa ho laola li u lumella ho arolelana lisebelisoa tse fumanehang tsa hardware 'me, ha ho hlokahala, beha meeli le lithibelo. Mohlala, fokotsa boholo bo ka bang teng ba memori bakeng sa setshelo.

Sistimi ea faele ea Union

Union File Sysem kapa UnionFS ke sistimi ea faele e sebetsang ka ho etsa likarolo, e etsa hore e be bobebe ebile e potlakile. Docker e sebelisa UnionFS ho theha li-block tseo setshelo se hahiloeng ho tsona. Docker e ka sebelisa mefuta e mengata ea UnionFS ho kenyelletsa: AUFS, btrfs, vfs le DeviceMapper.

Lifomate tsa setshelo

Docker e kopanya likarolo tsena ho sephutheloana seo re se bitsang sebopeho sa setshelo. Sebopeho sa kamehla se bitsoa libcontainer. Docker e boetse e ts'ehetsa sebopeho sa sets'oants'o sa setso ho Linux se sebelisang LXC. Nakong e tlang, Docker e ka ts'ehetsa lifomate tse ling tsa setshelo. Mohlala, ho hokahana le lichankana tsa BSD kapa libaka tsa Solaris.

Source: www.habr.com

Eketsa ka tlhaloso