Tutorial ng Docker - Panimula Sa Docker at Containerization



Sa Docker Tutorial na ito, mauunawaan mo ang pangangailangan sa likod ng Docker at makakuha ng isang pagpapakilala sa Docker. Ito ang unang blog sa serye ng tutorial ng Docker

Inaasahan kong hindi mo napalampas ang serye ng mga naunang DevOps Tutorial blog. Dumaan sa ditoAng hindi maipagpapatuloy na kalakaran ng lalagyan ng Docker ay lumalaki at ang mga samahan ay naghahanap ng mga propesyonal na nagmamay-ari .Ngayon, sa oras na ito, dadalhin ka namin sa pamamagitan ng isang Panimula sa Docker.

Tutorial ng Docker

Ang blog na Docker Tutorial na ito ay magbibigay sa iyo ng haka-haka at praktikal na pagkakalantad sa Docker - Isang bagong teknolohiya ng paglalagay ng edad.





Sa blog na ito, magtutuon kami sa mga paksa sa ibaba:

  • Ano ang Virtualization?
  • Ano ang Containerization
  • Mga kalamangan ng Containerization kaysa sa Virtualization
  • Panimula kay Docker
  • Mga Pakinabang ng Docker
  • Virtualization vs Containerization
  • Pag-install ng Docker
  • Dockerfile, Docker Image at Docker Container
  • Ano ang Docker Hub?
  • Arkitektura ng Docker
  • Bumuo ng Docker

Ang Docker ay nakakakuha ng katanyagan at ang paggamit nito ay kumakalat tulad ng wildfire. Ang dahilan para sa lumalaking katanyagan ng Docker ay ang lawak kung saan ito maaaring magamit sa isang samahang IT. Napakakaunting mga tool doon ay may pag-andar upang mahanap ang sarili nitong kapaki-pakinabang sa parehong mga developer at pati na rin ang mga administrator ng system. Ang Docker ay isang kagamitang tunay na sumusunod sa pangako nito Magtayo , Barko at Takbo .



Sa mga simpleng salita, ang Docker ay isang platform ng containerization ng software, nangangahulugang maaari mong buuin ang iyong aplikasyon, i-package ang mga ito kasama ang kanilang mga dependency sa isang lalagyan at pagkatapos ay ang mga lalagyan na ito ay maaaring madaling maipadala upang tumakbo sa iba pang mga machine.

Halimbawa: Hinahayaan nating isaalang-alang ang isang application na batay sa linux na nakasulat kapwa sa Ruby at Python. Ang application na ito ay nangangailangan ng isang tukoy na bersyon ng linux, Ruby at Python. Upang maiwasan ang anumang mga salungatan sa bersyon sa pagtatapos ng gumagamit, maaaring likhain ang isang lalagyan ng docker ng linux na may mga kinakailangang bersyon ng Ruby at Python na naka-install kasama ang application. Ngayon ang mga end user ay maaaring gumamit ng application nang madali sa pamamagitan ng pagpapatakbo ng lalagyan na ito nang hindi nag-aalala tungkol sa mga dependency o anumang mga salungatan sa bersyon.

Ang mga lalagyan na ito ay gumagamit ng Containerization na maaaring isaalang-alang bilang isang nabago na bersyon ng Virtualization. Ang parehong gawain ay maaari ding makamit gamit ang Mga Virtual Machine, subalit hindi ito gaanong mabisa.



Sa pangkalahatan ay nakakatanggap ako ng isang katanungan sa puntong ito, ibig sabihin, ano ang pagkakaiba sa pagitan ng Virtualization at Containerization? Ang dalawang term na ito ay halos magkatulad sa bawat isa. Kaya, hayaan mo muna akong sabihin sa iyo Ano ang Virtualization?

Ano ang Virtualization?

Ang Virtualization ay pamamaraan ng pag-import ng operating system ng Bisita sa tuktok ng isang operating system ng Host. Ang pamamaraan na ito ay isang paghahayag sa simula dahil pinapayagan nito ang mga developer na magpatakbo ng maraming mga operating system sa iba't ibang mga virtual machine na tumatakbo sa parehong host. Tinanggal nito ang pangangailangan para sa labis na mapagkukunan ng hardware. Ang mga kalamangan ng Virtual Machine o Virtualization ay:

  • Maaaring tumakbo ang maramihang mga operating system sa parehong makina
  • Ang pagpapanatili at Pagbawi ay madali kung sakaling magkaroon ng mga kondisyon ng pagkabigo
  • Ang kabuuang halaga ng pagmamay-ari ay mas mababa din dahil sa nabawasan na pangangailangan para sa imprastraktura

Arkitektura ng Virtual Machine - Tutorial ng Docker Sa Panimula Sa Docker - Edureka

Sa diagram sa kanan, maaari mong makita na mayroong isang host operating system kung saan may 3 operating operating system na tumatakbo na walang iba kundi ang mga virtual machine.

Tulad ng alam mong walang perpekto, ang Virtualization ay mayroon ding mga pagkukulang. Ang pagpapatakbo ng maraming mga Virtual Machine sa parehong host operating system ay humahantong sa pagkasira ng pagganap. Dahil ito sa panauhing OS na tumatakbo sa tuktok ng host OS, na magkakaroon ng sarili nitong kernel at hanay ng mga aklatan at dependency. Tumatagal ito ng isang malaking tipak ng mga mapagkukunan ng system, ibig sabihin, hard disk, processor at lalo na ang RAM.

Ang isa pang problema sa Mga Virtual Machine na gumagamit ng virtualization ay tumatagal ng halos isang minuto upang mag-boot-up.Napakahalaga nito sa kaso ng mga real-time na application.

Ang mga sumusunod ay ang mga kawalan ng Virtualization:

  • Ang pagpapatakbo ng maraming mga Virtual Machine ay humahantong sa hindi matatag na pagganap
  • Ang mga hypervisor ay hindi kasing husay ng host operating system
  • Mahaba ang proseso ng boot up at nangangailangan ng oras

Ang mga sagabal na ito ay humantong sa paglitaw ng isang bagong pamamaraan na tinatawag na Containerization. Hayaan mo akong sabihin sa iyo ang tungkol sa Containerization.

Mga tungkulin at responsibilidad ng linux admin

Ano ang Containerization?

Ang Containerization ay ang pamamaraan ng pagdadala ng virtualization sa antas ng operating system. Habang ang Virtualization ay nagdudulot ng abstraction sa hardware, ang Containerization ay nagdudulot ng abstraction sa operating system. Tandaan na ang Containerization ay isa ring uri ng Virtualization. Gayunpaman, mas mahusay ang pagkakontra dahil walang OS ng bisita dito at gumagamit ng operating system ng host, magbahagi ng mga nauugnay na aklatan at mapagkukunan tulad ng at kung kailan kinakailangan hindi katulad ng mga virtual machine. Ang mga tukoy na application na binary at aklatan ng mga lalagyan ay tumatakbo sa host kernel, na ginagawang napakabilis sa pagpoproseso at pagpapatupad. Kahit na ang pag-boot-up ng isang lalagyan ay tumatagal lamang ng isang bahagi ng isang segundo. Dahil ang lahat ng mga lalagyan ay nagbabahagi, mag-host ng operating system at humahawak lamang sa mga kaugnay na application na mga binary at aklatan. Ang mga ito ay magaan at mas mabilis kaysa sa Mga Virtual Machine.

Mga kalamangan ng Containerization kaysa sa Virtualization:

  • Ang mga lalagyan sa parehong OS kernel ay mas magaan at mas maliit
  • Mas mahusay na paggamit ng mapagkukunan kumpara sa VMs
  • Maikli ang proseso ng pag-boot at tatagal ng ilang segundo

Sa diagram sa kanan, maaari mong makita na mayroong isang host operating system na ibinabahagi ng lahat ng mga lalagyan. Naglalaman lamang ang mga lalagyan ng mga tukoy na aklatan ng application na hiwalay para sa bawat lalagyan at mas mabilis ang mga ito at hindi nagsasayang ng anumang mga mapagkukunan.

Ang lahat ng mga lalagyan na ito ay pinangangasiwaan ng layer ng containerization na hindi katutubong sa host operating system. Samakatuwid kinakailangan ang isang software, na maaaring paganahin kang lumikha at magpatakbo ng mga lalagyan sa iyong operating system ng host.

Suriin ang video ng tutorial na Docker na ito para sa isang malalim na pag-unawa sa Docker.

Tutorial ng Docker para sa Mga Nagsisimula | Ano ang Docker? | Mga Tool ng DevOps | Edureka

Ngayon, hayaan mo akong dalhin ka sa pamamagitan ng pagpapakilala sa Docker.

Tutorial ng Docker - Panimula Sa Docker

Ang Docker ay isang platform ng paglalagyan na binabalot ang iyong aplikasyon at lahat ng mga dependency nito nang magkasama sa anyo ng Mga Lalagyan upang matiyak na ang iyong aplikasyon ay gumagana nang maayos sa anumang kapaligiran.

Tulad ng nakikita mo sa diagram sa kanan, ang bawat aplikasyon ay tatakbo sa isang hiwalay na lalagyan at magkakaroon ng sarili nitong hanay ng mga aklatan at dependency. Tinitiyak din nito na mayroong paghihiwalay sa antas ng proseso, nangangahulugang ang bawat aplikasyon ay malaya sa ibang mga application, na binibigyan ng katiyakan ang mga developer na makakagawa sila ng mga application na hindi makagambala sa isa't isa.

Bilang isang developer, makakabuo ako ng isang lalagyan na may iba't ibang mga application na naka-install dito at ibigay ito sa aking koponan ng QA na kakailanganin lamang na patakbuhin ang lalagyan upang makopya ang kapaligiran ng developer.

Mga Pakinabang ng Docker

Ngayon, hindi kailangang i-install ng koponan ng QA ang lahat ng mga umaasang software at application upang subukan ang code at makakatulong ito sa kanila na makatipid ng maraming oras at lakas. Tinitiyak din nito na ang kapaligiran sa pagtatrabaho ay pare-pareho sa lahat ng mga indibidwal na kasangkot sa proseso, simula sa pag-unlad hanggang sa pag-deploy. Ang bilang ng mga system ay maaaring mai-scale up madali at ang code ay maaaring ma-deploy sa kanila nang walang kahirap-hirap.

Virtualization vs Containerization

Parehong hinahayaan ka ng Virtualization at Containerization na magpatakbo ng maraming mga operating system sa loob ng isang host machine.

Nakikipag-usap ang virtualisasyon sa paglikha ng maraming mga operating system sa isang solong host machine. Ang lalagyan sa kabilang banda ay lilikha ng maraming mga lalagyan para sa bawat uri ng aplikasyon ayon sa kinakailangan.

Larawan: Ano ang Malaking Data Analytics - Virtualization kumpara sa Containerization

Tulad ng nakikita natin mula sa imahe, ang pangunahing pagkakaiba ay ang maraming mga System ng Pagpapatakbo ng Bisita sa Virtualization na wala sa Containerization. Ang pinakamagandang bahagi ng Containerization ay na ito ay napakagaan kung ihahambing sa mabibigat na virtualization.

Ngayon, i-install natin ang Docker.

I-install ang Docker:

I-install ko ang Docker sa aking makina ng Ubuntu 17.10. Ang mga sumusunod ay ang mga hakbang upang mai-install ang Docker:

  1. I-install ang kinakailangang Mga Pakete
  2. I-setup ang repository ng Docker
  3. I-install ang Docker Sa Ubuntu

1. I-install ang Kinakailangan na Mga Pakete:

Mayroong ilang mga pakete na kinakailangan mo sa iyong system para sa pag-install ng Docker. Isagawa ang utos sa ibaba upang mai-install ang mga package.

sudo apt-get install curl apt-transport-https ca-sertipiko software-katangian-karaniwang

ruby sa riles web application

2. Pag-setup ng Docker Repository:

Ngayon, i-import ang opisyal na GPG key ng Dockers upang i-verify ang lagda ng mga package bago i-install ang mga ito gamit ang apt-get. Patakbuhin ang utos sa ibaba sa terminal:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key na idagdag

Ngayon, idagdag ang Repository ng Docker sa iyong system ng Ubuntu na naglalaman ng mga pakete ng Docker kasama ang mga dependency nito, para sa pagpapatupad ng sumusunod na utos:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable'

3. I-install ang Docker Sa Ubuntu:

Ngayon ay kailangan mong i-upgrade ang apt index at i-install ang edisyon ng komunidad ng Docker, para sa pagpapatupad ng mga sumusunod na utos:

sudo apt-get update sudo apt-get install docker-ce

Binabati kita! Matagumpay mong na-install ang Docker. Gayundin, suriin ang ilang karaniwang ginagamit Utos ng Docker .

Ngayon tingnan natin ang ilang mahahalagang konsepto ng Docker.

Dockerfile, Docker Image At Docker Container:

  1. Ang isang Docker Image ay nilikha ng pagkakasunud-sunod ng mga utos na nakasulat sa isang file na tinawag bilang Dockerfile.
  2. Kapag ang Dockerfile na ito ay naisakatuparan gamit ang isang docker command nagreresulta ito sa isang Docker Image na may isang pangalan.
  3. Kapag ang Larawan na ito ay naisakatuparan ng 'docker run' na utos magsisimula ito sa mismong aplikasyon o serbisyo na dapat magsimula sa pagpapatupad nito.

Docker Hub:

Ang Docker Hub ay tulad ng GitHub para sa Docker Images. Karaniwan ito ay isang cloud registry kung saan mahahanap mo ang Mga Docker Images na na-upload ng iba't ibang mga komunidad, maaari mo ring mabuo ang iyong sariling imahe at mai-upload sa Docker Hub, ngunit una, kailangan mong lumikha ng isang account sa DockerHub.

kung paano gamitin ang substring sa sql

Arkitektura ng Docker:

Binubuo ito ng isang Docker Engine na isang application ng client-server na may tatlong pangunahing mga bahagi:

  1. Ang isang server na kung saan ay isang uri ng pangmatagalang programa na tinatawag na isang proseso ng daemon (utos ng docker).
  2. Isang REST API na tumutukoy sa mga interface na maaaring magamit ng mga programa upang kausapin ang daemon at turuan ito kung ano ang dapat gawin.
  3. Isang client ng interface ng command line (CLI) (ang utos ng docker).
  4. Ginagamit ng CLI ang Docker REST API upang makontrol o makipag-ugnay sa Docker daemon sa pamamagitan ng scripting o direktang mga utos ng CLI. Maraming iba pang mga application ng Docker ang gumagamit ng napapailalim na API at CLI.

Sumangguni sa blog na ito, upang mabasa ang tungkol sa .

Sa wakas sa blog ng Tutorial ng Docker na ito ay pag-uusapan ko ang tungkol sa Docker Compose.

Bumuo ng Docker:

Ang Docker Compose ay karaniwang ginagamit upang magpatakbo ng maraming Docker Containers bilang isang solong server. Hayaan akong magbigay sa iyo ng isang halimbawa:

Ipagpalagay kung mayroon akong isang application na nangangailangan ng WordPress, Maria DB at PHP MyAdmin. Maaari akong lumikha ng isang file na magsisimula sa parehong mga lalagyan bilang isang serbisyo nang hindi na kinakailangang simulan nang magkahiwalay ang bawat isa. Ito ay talagang kapaki-pakinabang lalo na kung mayroon kang isang arkitektura ng microservice.

Sumangguni sa aking blog sa Lalagyan ng Docker upang maunawaan kung paano ito isagawa nang praktikal.

Gayundin, maaari mong basahin ang blog na ito sa kung paano mo mai-containerize ang isang mean na application ng stack gamit ang Docker Compose.

Sa pamamagitan nito, natapos na kami sa unang blog ng Docker Tutorial sa Panimula sa Docker & Containerization.

Dumaan sa aming susunod na blog sa Docker:

Ngayon na naintindihan mo kung ano ang DevOps, tingnan ang aming 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 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 at babalikan ka namin.