Docker Architecture: Bakit ito mahalaga?



Tinalakay ng blog na ito ang arkitektura ng pantalan at ang iba`t ibang mga bahagi. Itinatampok nito ang mga tampok ng docker na nagsasabi sa amin ng dahilan para sa katanyagan nito.

Marami sa atin ang naniniwala na ang Docker ay isang mahalagang bahagi ng . Kaya sa likod ng kamangha-manghang tool na ito, kailangang magkaroon ng isang kamangha-manghang arkitektura. Sa blog na ito, sasakupin ko ang lahat ng dapat mong malaman tungkol sa arkitekturang Docker. Ito ang mga puntong tatalakayin ko dito:

  1. Tradisyonal na Virtualization vs Docker
  2. Daloy ng Trabaho ni Docker
  3. Arkitektura ng Docker

Tradisyonal na Virtualization Vs Docker

Ano ang isang VM (Virtual Machine)?

Ang VM ay isang virtual server na gumagaya sa isang server ng hardware. Ang isang virtual machine ay umaasa sa pisikal na hardware ng system na tularan ang eksaktong parehong kapaligiran kung saan mo nai-install ang iyong mga application. Nakasalalay sa iyong kaso ng paggamit, maaari kang gumamit ng isang virtual na sistema ng system (na nagpapatakbo ng isang buong OS bilang isang proseso, na nagpapahintulot sa iyo na palitan ang isang tunay na makina para sa isang virtual machine), o iproseso ang mga virtual machine na pinapayagan kang isagawa ang mga aplikasyon ng computer nang nag-iisa sa virtual kapaligiran





Mas maaga, lumilikha kami dati ng mga virtual machine, at ang bawat VM ay may OS na tumagal ng maraming espasyo at ginawang mabigat ito.

Ano ang Docker?

Ang Docker ay isang proyekto na bukas na mapagkukunan na nag-aalok ng isang solusyon sa pag-unlad ng software na kilala bilang mga lalagyan. Upang maunawaan ang Docker, kailangan mong malaman kung ano ang mga lalagyan. Ayon kay Pantalan , ang isang lalagyan ay isang magaan, stand-alone, maipapatupad na pakete ng isang piraso ng software na may kasamang lahat ng kinakailangan upang mapatakbo ito.



Ang mga lalagyan ay independiyenteng platform at samakatuwid ay maaaring tumakbo ang Docker sa parehong mga platform na batay sa Windows at Linux. Sa katunayan, ang Docker ay maaari ding patakbuhin sa loob ng isang virtual machine kung may arises na kailangang gawin ito. Ang pangunahing layunin ng Docker ay pinapayagan kang magpatakbo ng mga application ng microservice sa isang ipinamigay na arkitektura.

Kung ihinahambing sa mga Virtual machine, inililipat ng platform ng Docker ang abstraction ng mga mapagkukunan mula sa antas ng hardware hanggang sa antas ng Operating System. Pinapayagan nito ang pagsasakatuparan ng iba't ibang mga pakinabang ng Mga Lalagyan hal. kakayahang magdala ng aplikasyon, paghihiwalay ng imprastraktura, at mga microservice na may sarili.

Sa madaling salita, habang ang mga Virtual Machine ay binubuo ng buong server ng hardware, inilalagay ng mga lalagyan ang kernel ng Operating System. Ito ay isang iba't ibang mga diskarte sa virtualization at nagreresulta sa isang mas mabilis at mas magaan na mga pagkakataon.



vm vs docker - arkitektura ng docker - edureka

Daloy ng Trabaho ni Docker

Una, tingnan natin tingnan ang Docker Engine at ang mga bahagi nito upang mayroon kaming pangunahing ideya kung paano gumagana ang system. Pinapayagan ka ng Docker Engine na bumuo, magtipon, magpadala, at magpatakbo ng mga application gamit ang mga sumusunod na sangkap:

  1. Docker Daemon : Isang paulit-ulit na proseso ng background na namamahala sa mga imahe ng Docker, lalagyan, network, at dami ng pag-iimbak. Patuloy na nakikinig ang Docker daemon para sa mga kahilingan at pinoproseso ng mga ito ng Docker API.

  2. Docker Engine REST API : Ang isang API ay ginagamit ng mga application upang makipag-ugnay sa Docker daemon. Maaari itong ma-access ng isang HTTP client.

  3. Docker CLI : Isang client ng interface ng command-line para sa pakikipag-ugnay sa Docker daemon. Mahusay na pinapasimple nito kung paano mo pinamamahalaan ang mga pagkakataon ng lalagyan at isa sa mga pangunahing kadahilanan kung bakit gusto ng mga developer na gamitin ang Docker.

    kung paano itakda ang classpath sa java sa windows 10

Sa una, nakikipag-usap ang kliyente ng Docker sa Docker daemon, na gumaganap ng mabibigat na pag-angat ng gusali, tumatakbo, pati na rin ang pamamahagi ng aming mga lalagyan ng Docker. Sa panimula, ang parehong kliyente ng Docker at daemon ay maaaring tumakbo sa parehong system. Maaari din naming ikonekta ang isang Docker client sa aremote Docker daemon. Bilang karagdagan, sa pamamagitan ng paggamit ng isang REST API, ang Docker client at daemon, makipag-usap, sa mga socket ng UNIX o isang network interface.

Arkitektura ng Docker

Ang arkitektura ng Docker ay gumagamit ng isang modelo ng client-server at binubuo ng Docker's Client, Docker Host, mga bahagi ng Network at Storage, at ang Docker Registry / Hub. Tingnan natin ang bawat isa sa ilang detalye.

Kliyente ni Docker

Ang mga gumagamit ng Docker ay maaaring makipag-ugnay sa Docker sa pamamagitan ng isang client. Kapag tumakbo ang anumang mga utos ng docker, ipinapadala sila ng kliyente sa dockerd daemon, na isinasagawa ang mga ito. Ang Docker API ay ginagamit ng mga utos ng Docker. Posibleng makipag-usap ang kliyente ng Docker sa higit sa isang daemon.

Docker Host

Ang host ng Docker ay nagbibigay ng isang kumpletong kapaligiran upang maipatupad at magpatakbo ng mga application. Binubuo ito ng Docker daemon, Mga Larawan, Lalagyan, Mga Network, at Imbakan. Tulad ng naunang nabanggit, responsable ang daemon para sa lahat ng mga pagkilos na nauugnay sa lalagyan at tumatanggap ng mga utos sa pamamagitan ng CLI oang REST API. Maaari rin itong makipag-usap sa iba pang mga daemon upang pamahalaan ang mga serbisyo nito.

Mga Bagay sa Docker

1. Mga imahe

Ang mga imahe ay walang anuman kundi isang read-only na binary template na maaaring bumuo ng mga lalagyan. Naglalaman din ang mga ito ng metadata na naglalarawan sa mga kakayahan at pangangailangan ng lalagyan. Ginagamit ang mga imahe upang mag-imbak at magpadala ng mga aplikasyon. Ang isang imahe ay maaaring magamit sa sarili nitong upang bumuo ng isang lalagyan o na-customize upang magdagdag ng mga karagdagang elemento upang mapalawak ang kasalukuyang pagsasaayos.

Maaari mong ibahagi ang mga imahe ng lalagyan sa mga koponan sa loob ng isang negosyo sa tulong ng isang pribadong rehistro ng lalagyan, o ibahagi ito sa mundo gamit ang isang pampublikong rehistro tulad ng Docker Hub. Ang mga imahe ay ang pangunahing elemento ng karanasan sa Docker dahil pinapagana nila ang pakikipagtulungan sa pagitan ng mga developer sa paraang hindi posible dati

2. Mga lalagyan

Ang mga lalagyan ay isang uri ng mga naka-encapsulate na kapaligiran kung saan nagpapatakbo ka ng mga application. Ang lalagyan ay tinukoy ng imahe at anumang karagdagang mga pagpipilian sa pagsasaayos na ibinigay sa pagsisimula ng lalagyan, kasama at hindi limitado sa mga koneksyon sa network at mga pagpipilian sa pag-iimbak. Ang mga lalagyan ay may access lamang sa mga mapagkukunan na tinukoy sa imahe, maliban kung natukoy ang karagdagang pag-access kapag itinatayo ang imahe sa isang lalagyan.

Maaari ka ring lumikha ng isang bagong imahe batay sa kasalukuyang estado ng isang lalagyan. Dahil ang mga lalagyan ay mas maliit kaysa sa VMs, maaari silang maikot sa loob ng ilang segundo, at magreresulta sa mas mahusay na density ng server

3. Mga Network

Ang Docker networking ay isang daanan kung saan nakikipag-usap ang lahat ng nakahiwalay na lalagyan. Higit sa lahat mayroong limang mga driver ng network sa docker:

    1. Tulay : Ito ang default na driver ng network para sa isang lalagyan. Ginagamit mo ang network na ito kapag tumatakbo ang iyong application sa mga standalone container, ibig sabihin maraming mga lalagyan na nakikipag-usap sa parehong host ng docker.

    2. Host : Inaalis ng driver na ito ang paghihiwalay ng network sa pagitan ng mga lalagyan ng docker at host ng docker. Maaari mo itong magamit kapag hindi mo kailangan ng anumang paghihiwalay sa network sa pagitan ng host at container.

    3. Overlay : Ang network na ito ay nagbibigay-daan sa mga serbisyo ng pulutong upang makipag-usap sa bawat isa. Ginagamit mo ito kung nais mong tumakbo ang mga lalagyan sa iba't ibang mga host ng Docker o kung nais mong bumuo ng mga serbulang serbisyo sa maraming mga application.

    4. Wala : Hindi pinagana ng driver na ito ang lahat ng mga networking.

    5. macvlan : Ang driver na ito ay nagtatalaga ng mac address sa mga lalagyan upang gawin silang hitsura ng mga pisikal na aparato. Dinalian nito ang trapiko sa pagitan ng mga lalagyan sa pamamagitan ng kanilang mac address. Ginagamit mo ang network na ito kung nais mong magmukhang isang pisikal na aparato ang mga lalagyan, halimbawa, habang naglilipat ng isang pag-set up ng VM.

4. Imbakan

Maaari kang mag-imbak ng data sa loob ng nasusulat na layer ng isang lalagyan ngunit nangangailangan ito ng isang driver ng imbakan. Dahil hindi paulit-ulit, napapahamak tuwing hindi tumatakbo ang lalagyan. Bukod dito, hindi madaling ilipat ang data na ito. Na patungkol sa paulit-ulit na pag-iimbak, nag-aalok ang Docker ng apat na pagpipilian:

    1. Mga Volume ng Data : Nagbibigay ang mga ito ng kakayahang lumikha ng paulit-ulit na pag-iimbak, na may kakayahang palitan ang pangalan ng mga volume, listahan ng mga volume, at ilista din ang lalagyan na nauugnay sa dami. Ang Mga Volume ng Data ay inilalagay sa host file system, sa labas ng mga lalagyan kopya sa mekanismo ng pagsulat at medyo mahusay.

    2. Lalagyan ng Dami : Ito ay isang alternatibong diskarte kung saan ang isang nakalaang lalagyan ay nagho-host ng dami at i-mount ang dami na iyon sa iba pang mga lalagyan. Sa kasong ito, ang lalagyan ng dami ay malaya sa lalagyan ng aplikasyon at samakatuwid maaari mo itong ibahagi sa higit sa isang lalagyan.

    3. Nag-mount ang Directory : Ang isa pang pagpipilian ay i-mount ang lokal na direktoryo ng host sa isang lalagyan. Sa mga naunang nabanggit na kaso, ang mga volume ay dapat na nasa loob ng folder ng mga volume ng Docker, samantalang pagdating sa Directory Mounts ang anumang direktoryo sa Host machine ay maaaring magamit bilang isang mapagkukunan para sa dami.

    4. Mga Plugin ng Imbakan : Ang Mga Storage Plugin ay nagbibigay ng kakayahang kumonekta sa mga panlabas na platform ng imbakan. Ang mga plugin na ito ay nag-iimbak ng imbakan mula sa host sa isang panlabas na mapagkukunan tulad ng isang array ng imbakan o isang appliance. Maaari kang makakita ng isang listahan ng mga plugin ng pag-iimbak sa pahina ng Plugin ng Docker.

Ang Registro ng Docker

Ang mga rehistro ng docker ay mga serbisyo na nagbibigay ng mga lokasyon mula sa kung saan maaari kang mag-imbak at mag-download ng mga imahe. Sa madaling salita, ang isang rehistro ng Docker ay naglalaman ng mga repositoryang Docker na nagho-host ng isa o higit pang Mga Larawan ng Docker. Ang mga Registrong Pampubliko ay may kasamang dalawang sangkap na katulad ng Docker Hub at Docker Cloud. Maaari mo ring gamitin ang Mga Registrong Pribado. Ang pinakakaraniwang mga utos kapag nagtatrabaho sa mga pagrerehistro ay kasama ang: docker push, docker pull, docker run

kung paano i-configure ang eklipse para sa java

Ngayon na naintindihan mo ang Docker Architecture, tingnan ito ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Edureka DevOps Certification Training ay tumutulong sa mga nag-aaral na maunawaan kung ano ang DevOps at makakuha ng kadalubhasaan sa iba't ibang mga proseso at tool ng DevOps tulad ng Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack at GIT para sa pag-automate ng maraming mga hakbang sa SDLC.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng 'Docker Architecture' na ito at babalikan ka namin