‫Dus eerst hadden we Charles die zijn Docker-bestandsgedeelte heeft gepost
‫en
‫laat me het groene scherm omhoog trekken, zodat we dit
‫Docker-bestand kunnen bekijken.
‫En natuurlijk is de realiteit hier dat als je eenmaal bij echte wereldbestanden bent, alles rommeliger wordt.
‫Rechts.
‫We leren allemaal in cursussen zoals die ik heb en we leren van blogartikelen en documentatie en als we dan eenmaal in de
‫echte wereld zijn, lijkt het altijd moeilijker dan dat.
‫Dus ik probeer altijd meer van die complexiteit aan cursussen toe te voegen, maar het is veel werk om dat in de cursussen
‫te krijgen, omdat het heel erg in de context zit.
‫Het gaat heel erg om uw omgeving en uw installatie en uw specifieke app.
‫Dus ik dacht gisteravond. Hé, waarom praten we hier morgen niet over in de show.
‫Dus als je dit echt leuk vindt, geef dit dan een duim omhoog.
‫Vertel me in de chat of in de opmerkingen dat je er meer van zou willen hebben
‫en we zullen dit een normaal iets maken, we zullen meer Docker-bestanden bekijken en bestanden samenstellen en enkele van de goede edelstenen eruit halen.
‫Oke.
‫Dus de eerste is Charles en het lijkt erop dat hij van zijn eigen account komt, hij heeft een P HP Apache-afbeelding.
‫Op basis van die naam ga ik er maar vanuit dat dat het is.
‫En het heeft een datum en het weet dat het een versie en een datum in de naam daar heeft.
‫Dus dat is vrij gebruikelijk als je begint met je eigen gebruik van afbeeldingen, je dingen
‫gaat doen zoals ze versie of dateert of commit-ideeën erin gebruikt.
‫En dat is een manier om te garanderen dat u exact dezelfde afbeelding goed gebruikt.
‫Ook hier gebruik je niet alleen de nieuwste in elke echte productie-opstelling, je kunt altijd de nieuwste gebruiken om te spelen
‫en te testen.
‫Maar als je naar echte dingen gaat, wil je altijd die echte versies gebruiken.
‫Nou, dat is de Azure HP-afbeelding die Charles zegt.
‫Oké gaaf.
‫En dan heeft hij hier een interessante opzet die ik nog niet eerder heb gezien en ik denk dat ik weet
‫waarom je het doet.
‫Dus in deze run-regel hier doe je een app om een update te krijgen en dan zeg je, als dat niet het geval is,
‫geef je een OR in bash, wat betekent dat als dit niet lukt dit te doen.
‫En dus herhaal je het.
‫Dus ik vermoed dat je ofwel op een netwerk zit of ergens waar je mogelijk een probleem hebt, het is een veelvoorkomend probleem
‫om updateproblemen te krijgen of misschien heb je in het verleden wat eigenaardigheden gehad waarbij het willekeurig mislukte en
‫als je heb het net een tweede keer gedaan, het zou werken.
‫Dat is wat ik vermoed dat je daar doet.
‫En het is een effectieve oplossing voor dat probleem, als dat is waar het voor dient.
‫Anders zie ik dit soort opstelling normaal niet, dit is normaal gesproken niet wat ik daar zou zien.
‫Oke.
‫Vervolgens exporteert u en dat is slechts een kleine verandering in metagegevens.
‫Dus er zal niet veel voor nodig zijn. Oh kijk, dat zegt Charles
‫tegen ja, hij zegt dat het een even vrolijk HP-beeld is.
‫En hij sprak met Azure-ondersteuning en het lost een bug op.
‫Dus heel
‫cool,
‫ik ga dat veranderen, laten we dit
‫doen door de lettertypen hier te veranderen, zodat het er een beetje makkelijker uitziet ja.
‫Een betere look.
‫Ja.
‫Oke.
‫Dus hier is iets interessants.
‫Dus je bent aan het downloaden, dus je doet wat downloads en je installeert een pakket dat normaal is.
‫En je doet hier ook een heleboel APP-installaties.
‫Dus tenzij dit iets is dat u aan het testen bent en u probeert erachter te komen hoe
‫deze workflow werkt, zijn er veel mogelijkheden voor optimalisatie, vooral als het gaat om de grootte.
‫En je hebt hier ook een situatie waarin we jezelf een beetje in de problemen kunnen brengen.
‫Dus merk hier op dat we een aparte run-lijn hebben die de app doet om updates te krijgen.
‫Dus je hebt niet die regel hier beneden waar je de hele installatie doet.
‫Dus je hebt al deze stappen doorbroken.
‫Als je nu naar officiële afbeeldingen gaat kijken, zul je merken dat ze dit nooit doen.
‫Ze zetten het altijd allemaal in één grote rij en daar zijn een aantal redenen voor.
‫De grootste reden hier is cash busting.
‫Dus als je erover nadenkt wanneer je een imago opbouwt, zit er geld achter.
‫Als je nu zoiets als Jenkins of een CCD-runner gebruikt en je hebt caching uitgeschakeld
‫waar het altijd vanaf het begin wordt opgebouwd zonder caching, dan is dit misschien niet zo'n probleem, maar het zal zeker een
‫probleem zijn als u bouwt lokaal of u bouwt meer dan
‫eens op een systeem.
‫En dit is wat er gaat gebeuren in de run-line.
‫Laten we zeggen dat het er is.
‫OKE.
‫En het verandert nooit.
‫Rechts.
‫Dus de eerste keer dat u deze afbeelding maakt, is alles in orde.
‫Laten we zeggen dat je drie dagen later bouwt.
‫Het gaat deze regel niet cachen omdat deze regel niet is veranderd, onthoud en op
‫de standaard docker build-opdracht cache busting is wanneer je een regel hebt gewijzigd.
‫En als je die regel verandert, wordt alles in die regel opnieuw uitgevoerd en elke regel erna.
‫En wat hier gebeurt, is als je deze run-line hier hebt en het verandert nooit, maar dan voeg je laten we
‫zeggen een ander pakket toe hier beneden in de run-regel of misschien verander je de versies en codeer je je versies
‫hard, wat je ook zou moeten doen zou de versies van al deze tools hard moeten coderen
‫en misschien niet zip en unzip en curl.
‫Maar als je beveiligingsteam streng is, verwachten ze dat je betrouwbare versies hebt en dat is iets anders dat je
‫hier zou willen doen.
‫Maar laten we op dit punt terugkomen.
‫Dus als je deze installaties gaat doen en je wijzigt een tool en voegt deze hier toe.
‫Denk daar eens over na en ontvang een update die een update moest krijgen, downloadt een cache van alle metadata over al
‫deze pakketten en dan ga je deze pakketten later installeren en als de tweede regel hier
‫kapot gaat door het te veranderen, zal het opnieuw worden uitgevoerd.
‫Maar het wordt uitgevoerd op basis van die oude cache van je app om een update te krijgen.
‫Dus je zult na verloop van tijd problemen gaan ervaren omdat je pakketten altijd die oude versies zullen installeren.
‫Een veel betere manier om dit te doen is om al je apps te gebruiken om dingen goed te krijgen.
‫En dat hoeft niet per se te maken te hebben met het downloaden van dit pakket hier.
‫Dit is een pakket op maat.
‫We zullen het daar even over hebben.
‫Maar als het op deze lijnen aankomt, heeft deze lijn geen effect op
‫de grootte, want deze lijn moet in dezelfde lijn lopen als deze, anders werkt hij niet.
‫Nu is dit allemaal misschien niet waar.
‫Als je nog een Oke hebt, doe je dus niet in meerdere fasen.
‫Een manier om met het grootteprobleem weg te komen, is dat je multi-state doet, maar je doet niet wat de staat doet en
‫dat is OK.
‫Je hoeft geen multi-stage
‫te doen, dus laten we eens kijken,
‫dus wat hier gaat gebeuren, is dat je zou aanraden deze hier te nemen en dit allemaal hier
‫te doen en het allemaal op deze lijn te brengen.
‫Ik zou deze exportregel nemen en het hierboven plaatsen, dus ik zou het hier gewoon plaatsen, zodat het op die manier is
‫ingesteld.
‫En het hoeft nooit te veranderen.
‫En u hoeft zich er geen zorgen over te maken terwijl u bezig bent om alles goed te doen.
‫En over het algemeen is het goed dat je alles bij de hand hebt om dingen aan de top te krijgen, want je wilt die afhankelijkheden die meestal lang
‫duren om te installeren, je wilt dat ze zo hoog mogelijk zijn, zodat je ze niet erg
‫opnieuw hoeft uit te voeren vaak.
‫Maar ik ben wat ik ga aanbevelen
‫dat je al deze dingen hier neemt en het hier neerzet. Je kunt dit nu doen, want dit is een handmatig pakket om te downloaden en te installeren.
‫Dus als je dit
‫doet, kun je een aantal dingen doen.
‫Een daarvan is dit.
‫Deze regel hier wordt een laag en die laag zal altijd het db-bestand bevatten, zelfs als je het niet
‫nodig hebt.
‫Dus als je later opruimt, is het niet het opruimen van deze vorige lagen.
‫Dat is een van de problemen hier is dat het een bestand is dat in een laag wordt gedownload en dan ga je naar de
‫volgende regel die een of de volgende Docker-opdracht is. Ik zou moeten zeggen dat de volgende Docker-opdracht een nieuwe laag
‫zal zijn.
‫Zie dat als een aparte it's up als je eenmaal een regel of een docker-commando hebt gestopt.
‫Je kunt dat niet veranderen, je kunt niet terug in de tijd gaan en dat veranderen.
‫Dus de volgende regel of opdracht en het docker-bestand zullen er gewoon dingen aan toevoegen.
‫Als het nu bestanden verwijdert, verwijdert het ze gewoon in die laag.
‫Het plaatste in wezen wat metadata die zeggen dat het bestand niet langer zou moeten bestaan of eruit zou moeten zien alsof het
‫bestaat, maar die bestanden zullen nog steeds bestaan en die alleen-lezen lagen omdat elke
‫laag erboven nu alleen-lezen is en dat is de manier waarop deze lagen garanderen dat ze zijn identiek aan wat je verwacht.
‫Geen enkele laag kan dus terug in de tijd.
‫Dus dat is wat je moet doen: bekijk enkele van de standaardafbeeldingen van de docker en laten we dit doen, een van de mijne bekijken, want het zal iets
‫meer zijn, het is
‫misschien een beetje gemakkelijker te begrijpen.
‫Dus ja ik weet
‫het niet zeker.
‫OKE.
‫Dus Docker-bestand ja, er is een AP Kay, maar je zult hier zien hoe het allemaal in één regel staat, dat is een
‫beetje een slecht voorbeeld, maar laten we een hub maken en naar Ghost gaan kijken.
‫Kijk dus naar dit Debian Docker-bestand.
‫Oké, hier gaan we.
‫Dus je zult merken dat het in deze situatie dingen aan het downloaden is, het met die dingen te maken heeft
‫en dan die dingen allemaal in één run-regel verwijdert.
‫Op die manier blijven die bestanden nooit hangen.
‫Zodra die laag is verzegeld en gemarkeerd als alleen lezen.
‫En dat is vrij belangrijk om uw afbeeldingen klein te houden.
‫Ik wed dat als je deze dingen efficiënt maakt en deze dingen combineert, je honderden meg
‫en je afbeeldingsgrootte zult besparen.
‫Oké, en het andere hier op deze is dat ik dat ook aan één enkele regel zou toevoegen en nog iets dat ik daar
‫zou doen, is dat je misschien niet hoeft te zoeken, misschien kan je een advertentie maken een advertentie zal automatisch een bestand
‫downloaden van het internet.
‫En als je erg benieuwd bent naar het verschil in kopie en advertentie tegenwoordig, onze standaard is dat kopiëren eigenlijk
‫alleen is voor het kopiëren van bestanden uit de repo waar je gelijk in hebt.
‫Dus kopieer gewoon bestanden en de advertentie doet hetzelfde, maar we hebben de neiging om alleen advertenties te gebruiken wanneer we ofwel
‫iets van internet downloaden of wat we ook kopiëren en we willen dat het uitpakt of tar unzipt en dat dat echt gaat gebeuren reden om
‫advertentie te gebruiken.
‫Maar het mooie voordeel van het gebruik van een advertentie is dat je het niet hoeft te doen, je zou in principe
‫de interne dokters kunnen gebruiken, we zullen dat bestand gaan halen en het downloaden, maar het negatieve daarvan is dat wanneer je die regel doet en
‫dan ga je naar de volgende regel.
‫Dat pakket blijft bestaan.
‫Dus ook al zijn advertenties daar in jouw geval echt cool omdat je een pakket downloadt waarvan je goed bent dat
‫ze het gaan installeren en dan heb je dat pakket daarin niet meer nodig.
‫Ik zou misschien alle drie die regels gewoon in één regel plaatsen, zodat je helemaal aan het einde
‫die punt D kunt verwijderen. B. bestand en bespaar extra ruimte in uw laatste evenement.
‫Dus dat zou je allemaal in één keer doen.
‫Oke.
‫Dat helpt.
‫Het lijkt er dus op dat je kopieert in een aantal andere geweldige bestanden die je gebruikt met kopiëren en niet toevoegen.
‫Je bent ook bezig met wat makers en kopiëren en certificaten.
‫Dat is precies hoe ik het zou doen.
‫Je zou dit kunnen optimaliseren, je zou deze allemaal in een enkele run-opdracht kunnen plaatsen,
‫meestal omdat het in feite een beetje sneller is om het te bouwen, het geeft je misschien een seconde sneller
‫in je rekening, omdat elke afzonderlijke regel het moet stoppen de container of maak een nieuwe
‫container, koppel de rest van de afbeelding en voer die opdracht uit, sla die vervolgens op in een nieuwe
‫containerafbeelding en start vervolgens een nieuwe container.
‫Rechts.
‫Het moet dus veel meer werk doen dan alleen drie snelle opdrachten uitvoeren.
‫Dus misschien heb ik die wel in één.
‫Er is geen veilige ruimtebesparing of iets anders, maar het is gewoon
‫een kwestie van drie commando's die echt in één lang shell-commando zouden veranderen, en ja oke ja.
‫We hebben de poorten.
‫Ik zou waarschijnlijk hetzelfde doen om die trouwens alleen voor efficiëntie te maken.
‫Dus hier kopieer je in twee verschillende kopieerregels, je kunt die ene regel maken.
‫Je zou eigenlijk kunnen zeggen: kopiëren en dan het pad naar de CRT en dan het pad daar naar die sleutel.
‫Kay Kay waarom en heb die twee bestanden en plaats dan het pad naar de SSL-directory.
‫Dus zolang ze allebei naar dezelfde map gaan, kun je meerdere bestanden in de enkele kopieerregel
‫hebben, wat je zal helpen het een beetje gemakkelijker te maken.
‫Minder regels is meestal beter zolang ze niet te ingewikkeld zijn.
‫Ja.
‫Je hebt daar wat standaard Apache-dingen op configuraties die je misschien ook hebt.
‫Ik weet niet hoeveel.
‫Ja.
‫Dit zijn deze zijn eigenlijk deze zijn goed.
‫Ik
‫denk dat die goed zijn ja, doe het wat meer het kopiëren van configuratiebestanden in sommige hiervan, je zou ook kunnen overwegen
‫dat dit standaard configuratiebestanden zijn, maar als je deze moet overschrijven en je een orchestrator
‫gebruikt, of je nu Cuban of zwerm gebruikt, besef dan dat je kan die configuratie gebruiken of in communities die
‫config map worden genoemd, kunt u de configuratiefunctie en zwerm gebruiken om deze bestanden tijdens runtime te koppelen, zodat
‫u geen configuraties hard codeert.
‫In het ideale geval ben je niet hard aan het coderen SSL is in je afbeelding, echt als je aangepaste SSL hebt,
‫omdat je dat in je orchestrator of in Docker wilt opslaan en deze wilt koppelen en wanneer je uitvoert, want idealiter zou
‫er niets geheim moeten zijn in een afbeelding wanneer u deze opslaat.
‫Dus hopelijk ga je hier hetzelfde doen, want je zou deze twee in één regel kunnen combineren, je zou sommige hiervan
‫in één regel kunnen combineren. Je zou waarschijnlijk kunnen weten of dit alle x kleine bestanden zijn die map
‫die je zou kunnen kopiëren directory asterisk dot X hoeveelheid en dan zou je ze alle
‫vier kunnen kopiëren, daar zijn de voor- en nadelen van, want als een X
‫extra Excel-bestand verschijnt, kan het per ongeluk worden gekopieerd, maar het hangt er gewoon van af hoe uitgebreid je wilt zijn en
‫hoe of je wilt een letterlijke regel voor lijnen, versus het donkere bestand klein en eenvoudig houden.
‫Oke.
‫En dan heb je nog een kopie, voer je wijziging uit in de werkdirectory en dan heb je
‫je toegangspunt.
‫Nu heb je meestal geen CRM D.
‫Dus mijn gok is dat je de CRM D van deze root-image gebruikt en dat is helemaal goed.
‫Daar is niets mis mee.
‫Een van de uitdagingen die ik daarmee heb, is dat mensen die mijn afbeeldingen gebruiken, als ik een team van mensen heb,
‫niet weten hoe ze ze moeten gaan bekijken D.
‫Dus ik heb de neiging om gewoon de CMT te herhalen, ook al is het hier beneden niet nodig, omdat ze dit gaan krijgen en een soort
‫repo en ze gaan ernaar kijken en als ze niet super handig zijn met Docker, zijn ze ik ga
‫het niet beseffen Oh, ik moet dat Docker-bestand voor de.
‫Daar komt het vandaan of gebruik de geschiedenis en ga terug en kijk naar de geschiedenis en tijd om die CMT
‫te vinden.
‫Dus je zou het misschien zelfs in een opmerking kunnen gooien om mensen te helpen die misschien naar dit Docker-bestand kijken, maar
‫ik heb de neiging om dat te vinden omdat het toegangspunt in de CMT net zo belangrijk is voor wat
‫deze Docker-afbeelding doet dat ik de neiging heb om voeg die n toe, ook al kan het een herhaling zijn van een vorige afbeelding.
‫Nogmaals, dat zijn allemaal metadata, dus het voegt niet echt realtime of bloat toe aan je build in plaats van de andere
‫bestandswijzigingen en de run-commando's die je doet.
‫Maar afgezien daarvan ziet het eruit als een Docker-bestand van goede kwaliteit waar je veel tijd aan hebt besteed,
‫maar ik denk dat je over het algemeen veel van die Docker-bestanden kunt combineren en dingen kunt krijgen
‫om veel ruimte in je afbeelding en veel te besparen van bloat en vermijd ook het updateprobleem van het hebben van een oude update die in
‫feite een oude app is om geld te krijgen wanneer u nieuwe dingen probeert te installeren.
‫Ik zou je deze versie aanraden en je kunt in principe binnen deze installatieopdracht de versie van elk
‫van deze tools specificeren, misschien maakt het niet echt uit, maar wanneer je begint met het zoeken naar
‫bibliotheken die je nodig hebt.
‫Voor Apache voor je eigenlijke app zijn dit gewoon meer hulpprogramma's om het te beheren, niet echt dingen die
‫je zou gebruiken in een productie-draaiende app.
‫Rechts.
‫Maar deze live Apache hier beneden zou ik zeker weten dat ik gebeten ben door deze
‫bug en HP omdat een mongo D. B. driver en HP veranderden versies in mijn image en het brak
‫het had een bug en het brak mijn productie-apps omdat ik het niet in het docker-bestand had vastgezet en ik in feite naar de productie
‫ging. Op een dag herbouwde ik de afbeelding het ging het werkte prima op mijn machine omdat mijn machine een andere versie had want
‫er is geen er staat dat er geen versies zijn je krijgt eigenlijk wat de
‫nieuwste versie is toen je de afbeelding bouwde dus het is een soort willekeurige hoop dat je een goede versie krijgt
‫dat werkt.
‫Dus je krijgt zeker een pin die ik persoonlijk allemaal zou vastpinnen en gewoon een keer per maand zou updaten of
‫zoiets of wat je beveiligingsteam ook nodig heeft.
‫Maar dat is een geweldig Docker-bestand.
‫Hartelijk bedankt.
‫Natuurlijk is er altijd ruimte voor verbetering en ik ben blij dat je daarbij kwam helpen.