Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3344|Antwoord: 1

[Bron] Docker-basisimagewijzigingen voor .NET 8

[Link kopiëren]
Geplaatst op 23-12-2023 17:30:10 | | | |
Voor .NET 8 draaiden containers standaard als root, en vanaf .NET 8 zullen al onze Linux-containerimages niet-rootgebruikers bevatten. Je kunt .NET-containers hosten met één regel code als niet-rootgebruiker. Deze verandering op platformniveau zal je applicatie veiliger maken en .NET tot een van de veiligste ontwikkelaarsecosystemen maken. Dit is een kleine verandering, maar het heeft een grote impact op verdediging in diepte.

Begrijp de UID's en GID's in Docker-containers

Standaard draait het proces in de container met rootgebruikersrechten, en deze rootgebruiker is dezelfde gebruiker als de root op de hostmachine. Klinkt dat niet eng, want het betekent dat zodra een proces in een container de juiste kans krijgt, het alles op de hostmachine kan aansturen!

Referentie:De hyperlink-login is zichtbaar.

.NET 8 Docker-image

Er zijn twee hoofdwijzigingen aan de .NET 8 Docker-afbeelding, als volgt:

  • Image maakt een nieuw app-account en groep aan, en draait de app standaard met het app-account
  • Toen ik naar poort 8080 schakelde, bleek het poort 80 te zijn, aangezien poort 80 een bevoorrechte poort is, zijn rootprivileges vereist (althans op sommige plaatsen)


.NET Docker image broncodeadres:De hyperlink-login is zichtbaar.

De afhankelijkheden zijn als volgt:

aspnet:8.0-bookworm-slim -> dotnet/runtime-8.0.0-bookworm-slim-amd64 -> dotnet/runtime-deps-8.0.0-bookworm-slim-amd64 -> amd64/debian:bookworm-slim

dotnet/runtime-deps-8.0.0-bookworm-slim-amd64 ziet er zo uit:

Zoals hieronder getoond:



Gebruik het app-account om de basisafbeelding in te voeren, en het commando is als volgt:

Voer de huidige gebruikers- en omgevingsvariabelen uit, zoals weergegeven in de volgende figuur:



Referentie:De hyperlink-login is zichtbaar.

Dockerfile-bestand

Als je je project in een Docker-image moet verpakken, moet je een nieuwe .NET 8 Docker-containerondersteuning aanmaken, en de standaard Linux-omgeving Dockerfile-bestandsconfiguratie is als volgt:

Als je de systeemtijdzone in het Dockerfile instelt, volgt de volgende code:

De fout 'Toestemming geweigerd' kan als volgt optreden:

4>F:\itsvse\Dockerfile : fout CTC1014: #21 [final 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : fout CTC1014: #21 0.314 ln: geen symbolische link kon maken '/etc/localtime': Toestemming geweigerd
4>F:\itsvse\Dockerfile : fout CTC1014: #21 FOUT: proces "/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone" is niet succesvol voltooid: exitcode: 1
4>F:\itsvse\Dockerfile : fout CTC1014: ------
4>F:\itsvse\Dockerfile : fout CTC1014: > [final 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : fout CTC1014: #21 0.314 ln: geen symbolische link kon maken '/etc/localtime': Toestemming geweigerd
Gebruik het rootaccount om de tijdzone in te stellen, schakel dan terug naar het app-account en pas het als volgt aan:

(Einde)





Vorig:.NET/C# om de ToLookup-methode te verzamelen
Volgend:PHP krijgt alle headerinformatie
 Huisbaas| Geplaatst op 23-12-2023 17:31:55 |
Twee tools worden aanbevolen voor het analyseren van de Docker-imagelaag
https://www.itsvse.com/thread-10063-1-1.html
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com