‫Hoe zit het nu met Docker Registry in een zwerm?
‫Het is eigenlijk niet veel anders.
‫Het leuke is dat we geen docker run-commando hoeven uit te voeren, we kunnen een docker-servicecommando gebruiken zoals we gewend zijn of
‫een stackbestand zoals we in een vorige sectie hebben besproken. Het gaat op dezelfde manier werken als op
‫de lokale host, omdat we de zwerm eigenlijk gewoon kunnen vertellen om tegen zichzelf
‫te praten voor het register.
‫Dus zal hetzelfde 127-adres gebruiken en we hoeven het onveilige register niet in te schakelen
‫omdat dat al is toegestaan door de Docker Engine. De Routing Mesh staat in feite alle knooppunten toe om met het register te praten alsof
‫het lokaal is, toch,
‫want dat is een beetje de magie van de Routing Mesh.
‫Ik wil u er alleen aan herinneren dat dit een persistente gegevenscontainer is.
‫Het slaat gegevens op die in de loop van de tijd moeten meegaan.
‫Je zult dus te maken krijgen met een scenario van een echte wereldproductie. Je zult te maken krijgen met een volumedriver
‫en hoe je ermee om moet gaan, en in feite een beslissing nemen over hoe je de gegevens gaat
‫opslaan.
‫Maar dat gaan we hier niet doen.
‫Voor dit voorbeeld met Swarm ga ik het eigenlijk een beetje veranderen en niet het cluster met drie knooppunten gebruiken dat
‫ik in een vorige sectie had gebruikt.
‫We gaan deze keer Play With Docker gebruiken. Als je gewoon naar play-with-docker gaat. com, we gaan
‫echt bewijzen dat we geen robot zijn en dan gaat het me wat willekeurige vragen
‫stellen, het zou jou kunnen vragen, misschien niet.
‫Dan zijn we binnen.
‫Onlangs heeft de Play With Docker een nieuwe functie ingeschakeld die het voor ons nog gemakkelijker
‫maakt om een testformulier in te stellen en dat staat onder het moersleutelobject.
‫Ik denk dat dat een moersleutel is. Je ziet dat er hier opties zijn die in feite sjablonen
‫zijn voor het opzetten van een zwerm, dus in plaats van je deze te laten zien, zoals we al hebben gedaan, ga ik gewoon
‫vijf managers opzetten, geen werknemers, geef het een seconde dus het zal deze allemaal opzetten. Waar we in feite mee beginnen, is
‫een zwerm met vijf knooppunten. We gaan gewoon heel snel een register draaien
‫om te laten zien hoe het ongeveer hetzelfde is als voorheen.
‫Oke. Nu heb ik vijf managerknooppunten en als ik dockerknooppunt ls heb gedaan, kun je zien dat ik er vijf
‫heb.
‫Dus ja. We hebben een zwerm. Laten we eigenlijk gewoon het register uitvoeren, maar
‫deze keer
‫gaan we de service create gebruiken en het register noemen.
‫We gaan het opnieuw publiceren zoals de vorige keer, poort 5000, en
‫we gaan naar het afbeeldingenregister.
‫Daar ga je.
‫We kunnen een docker-service ps-register doen en er staat dat het actief is. In Play With Docker krijgen we deze
‫leuke kleine knop die verschijnt wanneer we een webtoepassing publiceren.
‫Het onthult eigenlijk de poort en geeft een leuke kleine vriendelijke URL waarmee we die webapp of dat
‫webeindpunt kunnen testen.
‫Maar weet je, met Register, aan de
‫basis ervan, is het niets, er wordt niets anders geretourneerd dan een HTTP 200.
‫Wat we echter wel kunnen doen, is met elk register dat we daadwerkelijk in de catalogus kunnen bekijken en
‫dat zal een eenvoudige JSON-array opleveren.
‫U zult merken dat de repository leeg is.
‫We hadden dit in de vorige lezing er lokaal mee kunnen doen, maar laten we hier een klein beetje mee
‫spelen, aangezien we in deze eenvoudige oplossing zitten met Spelen met Docker.
‫Laat me hetzelfde doen als ik een havenarbeider trek als voorheen van de hallo wereld. Ik ga nu de tag-onthoud opnieuw doen, dus we gaan
‫tag hallo world zeggen en dan ga ik de naam ervan wijzigen of opnieuw taggen naar een
‫nieuwe repository 127. 0. 0. 1 5000,
‫ik ga een dokwerker duwen.
‫Ik zal hierop inzoomen, zodat we het misschien wat gemakkelijker kunnen zien.
‫dokwerker duwen.
‫Dan gaan we de 127 doen. 0. 0.
‫1 Oké. Nu heeft het dat naar onze repository geduwd. De manier waarop we het echt
‫kunnen controleren, heel snel, is dat als je naar dit andere tabblad gaat en ik ververs, je zult zien dat repositories nu de naam van de beschikbare repo tonen.
‫Naarmate we er meer aan toevoegen, zou dit de array daadwerkelijk uitbreiden en zouden we ze daar allemaal zien.
‫Op dit punt kon ik gewoon doen zoals voorheen, die afbeelding uitvoeren, het zou werken zoals we hadden verwacht
‫en het opschalen. Om dat punt
‫te bewijzen, kan ik een docker pull nginx doen.
‫We kunnen een
‫eenvoudige nginx-webserver uitvoeren, docker-tag nginx,
‫en vervolgens docker-push, die
‫terug naar ons register pushen.
‫Dan zie je hier dat ik er nu twee heb. Ik heb daar twee opslagplaatsen. Als ik dan een
‫docker-service heb gemaakt, net
‫zoals we
‫normaal doen, oké, we gaan
‫de nginx 80 80 doen, maar deze keer ga ik de afbeelding zo specificeren.
‫We zeggen dat we de Docker Hub-image niet willen
‫gebruiken om de service te starten en we willen dit gebruiken.
‫Nu gaan we een aantal opties toevoegen.
‫Ik ga eigenlijk replica's 5 doen, zodat één nginx op elk knooppunt start, en dan gaan we een
‫nieuwe optie doen die in de 17 begon te verschijnen. 04 Ik geloof dat losmaken gelijk is aan onwaar en dit zal ons in staat stellen om
‫het commando in realtime te zien lopen.
‫Je zult zien dat het zich voorbereidt, wat betekent dat het in feite die afbeelding van het
‫register naar de knooppunten downloadt, en dan wordt het klaargemaakt en dan is het actief.
‫Daar gaan we, we zijn klaar.
‫Als ik eraan trek, zie je van bovenaf, het toont nu poort 80 omdat het een nieuwe service is, en
‫je zult zien dat ik het hier heb en het werkt.
‫Wat hier interessant aan is, is dat wanneer je in een zwerm zit, je geen afbeelding kunt gebruiken die zich maar op één
‫knooppunt bevindt, toch?
‫Een zwerm moet afbeeldingen op alle knooppunten kunnen ophalen uit een repository in een
‫register dat ze allemaal kunnen bereiken. Ik heb dat niet genoemd in de zwermsectie, maar
‫het is een belangrijk punt, want dat betekent dat je niet zomaar een eigen afbeelding kunt bouwen op een local, zoals laten we zeggen in dit geval
‫manager1, en manager2 zal dat niet doen in staat zijn om naar manager1 te gaan en het te krijgen, toch?
‫Ze moeten allemaal ergens vanuit een centrale repository pushen en pullen.
‫Maar omdat ik het register hier als een service heb uitgevoerd, kunnen ze allemaal weten hoe ze toegang moeten krijgen tot 127 nul
‫nul één, en dan zal het routeringsnet ze daadwerkelijk naar de juiste container sturen, waar dat register ook op
‫een van de knooppunten draait, en dan het zal die nginx-afbeelding naar alle knooppunten trekken als ze daar
‫moeten zijn.
‫Als je een docker-service ps nginx hebt uitgevoerd, zul je zien dat er op elk knooppunt een draait, en je
‫zult zien dat de afbeelding die wordt gebruikt die van ons register is.
‫OK, dus dat is het om te laten zien hoe Swarm erg op Docker Registry lijkt.
‫Aan het einde noemden we dat nieuwe lekkernij, dat je ervoor moet zorgen dat je afbeeldingen die je
‫in een zwerm gebruikt, gewoon toegankelijk zijn in het register waarin ze zich bevinden.
‫Ze moeten toegankelijk zijn voor alle knooppunten. Dat dat duidelijk moet zijn, toch, want de nodes
‫kunnen geen afbeeldingen met elkaar delen. Ze moeten ze eigenlijk allemaal uit een register halen en
‫dus moeten ze er allemaal bij kunnen.
‫Het is gewoon zo dat een routing mesh het veel gemakkelijker maakt om dat uit te voeren.
‫Als laatste kleine ProTip, als je niet je eigen register hoeft te runnen, hoe cool het misschien ook is om dit
‫te doen, gebruik dan gewoon een van de gehoste op internet.
‫Ze zijn overbodig.
‫Ze hebben toezicht en alle juiste dingen die te maken hebben met het beheer van de opslag.
‫Ze zijn meestal, vooral als je open source
‫gebruikt, de meeste gratis.
‫Als je het om privéredenen doet en privé-afbeeldingen moet opslaan, zijn de meeste van hen zeer redelijke kosten, ik bedoel zeer lage
‫kosten om je afbeeldingen op te slaan.
‫Dus of je nu een AWS of Quay of Docker Hub gebruikt of veel van de opties
‫die er zijn, ik zou zeggen probeer die eerst en gebruik alleen je eigen register als je echt een soort van,
‫misschien, offline vereiste hebt waar het beschikbaar moet zijn zonder internet, of als er slechts een beveiligingsbeperking is
‫dat u echt geen gehost platform kunt gebruiken. Omdat het echt een van die dingen is waar het een hulpprogramma is en het
‫is geweldig als je gewoon op iemand anders kunt vertrouwen om dat probleem voor je op te lossen.
‫Dus ik hoop dat je ermee speelt en plezier hebt.
‫Nu je deze lezing niet hebt gevolgd, denk er dan aan om op te ruimen, zodat je met een nieuwe lei aan
‫de volgende lezing kunt beginnen.