‫Brandon zit bij de eerste.
‫De volgende vraag gaat hier een rechtszaak aan tegen de gebruiker.
‫Hoe ga je het liefst om met niet-rootgebruikers in containers en behoud je bestandspermissies op de
‫of Hossain.
‫Wat is de huidige best practice, dus machtigingen in Docker.
‫Het is niet eerlijk om te zeggen dat Docker zelf met de bestanden die u
‫in een container uitvoert, erg frustrerend kan zijn, vooral als u bind-mounts gebruikt, dus bind-mounts combineren de machtigingen van de hostbestanden met die
‫dingen die in de container worden uitgevoerd en dat kan vaak leiden ertoe dat je je haren uittrekt en een
‫beetje gek wordt en sommige van mijn moeilijkste projecten waren toen we opslag van gedeelde bestanden op meerdere servers nodig hadden voor
‫meerdere containers op verschillende host die allemaal toegang hebben tot dezelfde bestanden met de juiste machtigingen en ook
‫met de minste privileges met niet admin gebruikers niet root gebruikers recht.
‫Dus die kunnen heel lastig zijn.
‫Ik zou zeggen user versus go.
‫Dus als je me vraagt naar gebruiker Brandon, neem ik aan dat je het hebt over de DR-afbeeldingsopbouw, want
‫dat is waar gebruikers het goed hebben toegepast.
‫En het werkt meestal beter dan Sue in het bouwen van een hond of imago.
‫Dus dat is in ieder geval mijn begrip van waarom Go Sue vaak wordt gebruikt in Docker-afbeeldingen om te
‫bouwen en ik weet eigenlijk niet de reden waarom ik het waarschijnlijk jaren geleden heb geleerd en het toen
‫snel vergat.
‫Dus ik neem aan dat je vraag echt over het bouwen van afbeeldingen is
‫en ik zou zeggen dat de gebruiker daar de beste praktijk is voor het gebruik van Docker-bestandsregels als je in een run-opdracht zit en je de rechten moet wijzigen op
‫een specifiek deel van dat run-commando en dat is waar het naar
‫mij toe gaat, is logisch omdat je misschien dingen als root-gebruiker moet doen, maar niet altijd binnen dat run-commando.
‫Dus misschien kiest u er dan voor om door te gaan en andere dingen goed te doen.
‫Dus ik denk dat wat er uiteindelijk gebeurt met mensen die met machtigingen zijn, niet de bestanden
‫in de afbeelding zijn, maar de bestanden tijdens runtime.
‫Dus als je container eenmaal is opgestart, laten we zeggen dat je een node-app hebt en die
‫node-app draait, is een gebruikersnode en heeft een uploadmap voor gebruikers en dan worden die bestanden opgeslagen op de host en dus
‫worden ze opgeslagen als de gebruikersknooppunt en omdat dat is wat de knooppunten draaien, wordt het uitgevoerd en dan heb je een ander proces, misschien
‫een andere container en gebruik je een gedeeld volume of zoiets of een aankoopbedrag en dat
‫dat niet draait als dezelfde gebruiker en toegang moet hebben tot die bestanden lezen goed en je
‫krijgt in deze problemen rond machtigingen.
‫Dus ik zou zeggen dat als je deze problemen niet kunt oplossen met getoond in mod, dat dan ook niet het geval is.
‫Met andere woorden, in het docker-bestand, als u bijvoorbeeld een kopieeropdracht doet in plaats van
‫een doktersbestand, kunt u daar nu een weergegeven op doen, zodat wanneer u bestanden kopieert en ze kopiëren met de juiste
‫gebruikers die toestemming hebben gekregen om die bestanden kun je geen commando geven.
‫Ik denk het nog niet, hoewel dat misschien een functie is die echt iets is en zoek op dat er
‫veel is toegevoegd.
‫De Ducker.
‫Dus we gaan naar de officiële documentatie daar rechts inzoomen en als ik naar ja ga.
‫Dus als ik glinsterend zoek, zie ik niets.
‫Maar als ik naar getoond ga, kun je zien waar je, als je de advertentie of de kopie gebruikt, die kunt kopiëren met
‫de juiste machtigingen.
‫Dat is een enorm iets dat een jaar of twee geleden is gebeurd en
‫dat ons veel ruimte bespaart, omdat we dan de machtigingen voor de bestanden niet hoeven te wijzigen, stap één stap
‫twee is als u de machtigingen van mappen tijdens runtime moet wijzigen, zoals u moet een volume zijn ingesteld op bepaalde machtigingen.
‫Daar is een entry point-script voor.
‫Dus als je naar een voorbeeld zou kijken, zoals als we hier gewoon teruggaan naar Docker Hub en ik naar mijn vervolg zou
‫gaan en als je naar een van mijn vervolg Docker-bestanden zou gaan, zou je waarschijnlijk ontdekken dat er een toegangspunt is
‫script, vooral met dingen als databases en een entrypoint-script iets dat kan starten elke
‫keer dat een container wordt gestart en vaak zie je in deze entrypoint-scripts dingen zoals ik wil dat
‫je alles in deze map laat zien en het aanpast of je weet het wel een plus-rechts globaal of
‫iets dat niet altijd het veiligste is om te doen, maar als je permissies meteen moet wijzigen,
‫zou je dat in het script doen.
‫Het probleem in dit script is natuurlijk dat het wordt uitgevoerd als de gebruiker, denk ik, omdat het wordt uitgevoerd als de
‫gebruiker die u in een docker-bestand instelt, dus dat wordt een ander probleem, want als u de machtigingen
‫voor bestanden moet wijzigen om ze leesbaar en leesbaar is voor de node-gebruiker, maar het script wordt uitgevoerd als
‫een node-gebruiker, dan heb je problemen, want je kunt niet naar de route gaan.
‫In wezen op dat moment.
‫Dus ik zou zeggen dat daar geen gemakkelijke of beste oplossing voor is, maar permissies zou
‫je waarschijnlijk een hele cursussectie kunnen schrijven over het schrijven van een hele trainingssessie van meerdere uren over de verschillende manieren waarop met
‫de machtigingen wordt omgegaan.
‫Een klein weetje daar.
‫Het laatste wat ik zal zeggen is dat ik weet dat ik een beetje op
‫je vraag inga, maar het is iets waarvan ik denk dat het vaak naar voren komt, namelijk dat bestandspermissies in Linux slechts getallen zijn.
‫In feite is dit eigenlijk een tip die mij is gegeven, denk ik door Phil
‫Estes, iemand die de naamruimte implementeerde die de gebruikersnaamruimteproblemen veroorzaakt.
‫Het spijt me dat de functie voor de gebruikersnaamruimte in Docker niet standaard is ingeschakeld.
‫Maar als u al uw containers als niet-root wilt laten werken, zou u dat inschakelen.
‫En hij was een van degenen die hielp die functie toe te voegen en we waren op een dag aan het praten en hij wees erop
‫dat je de gebruiker I kent. D. en de groep I. D. zijn slechts ideeën, u kunt dat aantal instellen op
‫wat u maar wilt.
‫Het zijn maar cijfers.
‫En dus als je bestanden op de host nodig hebt om bijvoorbeeld overeen te komen met die in de container als je
‫alles gewoon instelt met I. D. nummer dan zijn gebruikersnamen op dat moment echt niet relevant.
‫Zij, het is echt de ik. D. waar het naar gaat kijken voor het matchen van die machtigingen.
‫Dus in het geval dat ik aan een project werkte en we bestanden over meerdere containers moesten delen, maar
‫ze allemaal als verschillende gebruikers werkten, moesten we ervoor zorgen dat de machtigingen overeenkwamen.
‫We hebben er gewoon handmatig voor gezorgd dat die bestanden de juiste nummers gebruikten of I. D. voor de eigenaar en de groep en toen begon
‫alles te werken, want dat deed er niet echt toe dat we de gebruiker niet op de host hadden gemaakt die
‫bijvoorbeeld overeenkwam met die ik. D. binnen in de container.
‫We hebben ervoor gezorgd dat de I. D. nummers kwamen overeen, dus dat is een kleine tip.
‫Het kostte me een tijdje om dat uit te zoeken en te begrijpen hoe die werkten, maar eigenlijk
‫alleen aan het eind van de dag doet het geen vergelijking om ervoor te zorgen dat de nummers van de reads en
‫rechten en machtigingen overeenkomen met wat de gebruiker die de opdracht uitvoert doet.
‫Goede vraag.
‫Ik ben blij dat je dat ter sprake bracht, want dat is niet iets dat we hier onlangs
‫hebben besproken en we zouden er meer over moeten praten.