Laat ons vertroud raak met die Docker-argitektuur en die belangrikste komponente daarvan.
Ek neem aan dat u 'n basiese begrip van Docker het. Indien nie, kan u na die vorige artikel verwys.
Ek glo dat u die belangrikheid van Docker in DevOps verstaan. Agter hierdie fantastiese instrument, moet daar 'n ongelooflike, deurdagte argitektuur wees. Is dit nie?
Maar voordat ek daaroor praat, kan ek die vorige en huidige virtualisasiestelsel ten toon stel.
1 Tradisionele en nuwe generasie-virtualisasie
Tradisionele en nuwe generasie-virtualisasie
Vroeër het ons virtuele masjiene geskep, en elke VM het 'n bedryfstelsel gehad wat baie ruimte inneem en dit swaar gemaak het.
In die geval van 'n houerhouer, het u 'n enkele bedryfstelsel, en die bronne word tussen die houers gedeel. Daarom is dit liggewig en binne sekondes stewels.
Hieronder is die eenvoudige diagram van 'n Docker-argitektuur.
Laat ek u die komponente van 'n dokker-argitektuur verduidelik.
Dit is die kerndeel van die hele Docker-stelsel. Docker Engine is 'n toepassing wat volg kliënt-bediener argitektuur. Dit is op die gasheermasjien geïnstalleer. Daar is drie komponente in die Docker-enjin:
bediener: Dit is die docker-demoon wat genoem word dockerd. Dit kan docker-beelde skep en bestuur. Houers, netwerke, ens.
Rus API: Dit word gebruik om die docker-dememon op te stel wat om te doen.
Opdraglyn-koppelvlak (CLI): Dit is 'n kliënt wat gebruik word om docker-opdragte in te voer.
Docker-gebruikers kan via 'n kliënt met Docker kommunikeer. As enige docker-opdragte uitgevoer word, stuur die kliënt dit na dockerdemon, wat dit uitvoer. Docker API word gebruik deur Docker opdragte. Docker-kliënt kan met meer as een daemon kommunikeer.
Dit is die plek waar die Docker-beelde gestoor word. Dit kan 'n openbare registrasieregister of 'n privaat dokkerregister wees. Docker Hub is die standaardplek van docker-beelde, die openbare register van die winkels. U kan ook u eie privaat register skep en bestuur.
As u docker pull- of docker-opdragte uitvoer, word die vereiste docker-beeld uit die gekonfigureerde register getrek. As u 'n docker-opdrag uitvoer, word die docker-beeld in die gekonfigureerde register gestoor.
As u met Docker werk, gebruik u beelde, houers, volumes, netwerke; dit alles is Docker-voorwerpe.
Docker-beelde is leesalleen sjablone met instruksies om 'n dockerhouer te skep. Docker-afbeelding kan uit 'n Docker-hub getrek word en gebruik word soos dit is, of u kan ekstra instruksies by die basisbeeld voeg en 'n nuwe en gewysigde docker-prent skep. U kan u eie docker-beelde maak, ook met behulp van 'n dokerfile. Skep 'n dokerfile met al die instruksies om 'n houer te skep en uit te voer; dit sal u persoonlike docker-beeld skep.
Docker-afbeelding het 'n basislaag wat slegs leesbaar is, en die boonste laag kan geskryf word. As u 'n dokfile bewerk en dit herbou, word slegs die aangepaste deel in die boonste laag herbou.
Nadat u 'n dokkerafbeelding uitgevoer het, skep dit 'n houerhouer. Al die toepassings en hul omgewing is binne hierdie houer. U kan Docker API of CLI gebruik om 'n dockerhouer te begin, stop, verwyder.
Hieronder is 'n voorbeeldopdrag om 'n Ubuntu-docker-houer te bedryf:
Die volgehoue ​​data wat gegenereer word deur die docker en deur Docker-houers gebruik word, word in Volumes gestoor. Dit word volledig bestuur deur docker via docker CLI of Docker API. Volumes werk op beide Windows- en Linux-houers. Eerder as om data in 'n houer se skryfbare laag te hou, is dit altyd 'n goeie opsie om volumes daarvoor te gebruik. Die inhoud van die volume bestaan ​​buite die lewensiklus van 'n houer, dus die gebruik van volume vergroot nie die grootte van 'n houer nie.
U kan -v of –mount-vlag gebruik om 'n houer met 'n volume te begin. In hierdie voorbeeldopdrag gebruik u geekvolume volume met geekflare-houer.
docker run -d – naam geekflare -v geekvolume: / app nginx: nuutste
Docker-netwerk is 'n gang waardeur al die geïsoleerde houers kommunikeer. Daar is hoofsaaklik vyf netwerkbestuurders in docker:
Bridge: Dit is die standaard netwerkbestuurder vir 'n houer. U gebruik hierdie netwerk wanneer u program op alleenstaande houers loop, dit wil sê verskeie houers wat met dieselfde docker-gasheer kommunikeer.
host: Hierdie drywer verwyder die netwerkisolasie tussen dockerhouers en dockergasheer. Dit word gebruik wanneer u geen netwerkisolasie tussen gasheer en houer benodig nie.
overlay: Hierdie netwerk stel swermdienste in staat om met mekaar te kommunikeer. Dit word gebruik wanneer die houers op verskillende Docker-gashere loop, of wanneer swermdienste deur verskeie toepassings gevorm word.
Geen: Hierdie drywer skakel alle netwerke uit.
macvlan: Hierdie drywer ken Mac-adres toe aan houers om hulle soos fisiese toestelle te laat lyk. Die verkeer word deur hul mak-adresse tussen houers gestuur. Hierdie netwerk word gebruik as u wil hê dat die houers byvoorbeeld soos 'n fisiese toestel moet lyk, terwyl 'n VM-opstelling gemigreer word.
Ek hoop dat dit u 'n idee gee oor die Docker-argitektuur en die noodsaaklike komponente daarvan. Navigeer rondom Docker om meer te wete te kom, en as u geïnteresseerd is in praktiese opleiding, gaan kyk gerus Docker-meesterskursus.