Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3344|Svar: 1

[Kilde] Docker-base-imageændringer for .NET 8

[Kopier link]
Opslået på 23/12/2023 17.30.10 | | | |
Før .NET 8 kørte containere som root som standard, og fra .NET 8 vil alle vores Linux-containerbilleder indeholde ikke-root-brugere. Du vil kunne hoste .NET-containere med en enkelt kodelinje som ikke-root-bruger. Denne ændring på platformniveau vil gøre din applikation mere sikker og gøre .NET til et af de mest sikre udviklerøkosystemer. Det er en lille ændring, men det har stor betydning for forsvaret i dybden.

Forstå UID'erne og GID'erne i Docker-containere

Som standard kører processen i containeren med root-brugerrettigheder, og denne root-bruger er den samme bruger som root på værtsmaskinen. Lyder det ikke skræmmende, for det betyder, at når en proces i en beholder har den rette chance, kan den styre alt på værtsmaskinen!

Henvisning:Hyperlink-login er synlig.

.NET 8 Docker-billede

Der er to hovedændringer til .NET 8 Docker-billedet, som følger:

  • Image opretter en ny app-konto og gruppe, og kører appen med app-kontoen som standard
  • Da jeg blev skiftet til port 8080, viste det sig at være port 80, da port 80 er en privilegeret port, kræves root-rettigheder (i hvert fald nogle steder)


.NET Docker-billedkildekodeadresse:Hyperlink-login er synlig.

Afhængighederne er som følger:

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 ser sådan ud:

Som vist nedenfor:



Brug app-kontoen til at indtaste det grundlæggende billede, og kommandoen er som følger:

Output de aktuelle bruger- og miljøvariabler, som vist i følgende figur:



Henvisning:Hyperlink-login er synlig.

Dockerfile-fil

Hvis du skal pakke dit projekt i et Docker-image, skal du oprette en ny .NET 8 Docker-containerunderstøttelse, og standardkonfigurationen af Dockerfile-filen i Linux-miljøet er som følger:

Hvis du sætter systemets tidszone i Dockerfile, følger følgende kode:

Fejlen ved tilladelsesnægtelse kan forekomme som følger:

4>F:\itsvse\Dockerfile : fejl CTC1014: #21 [slut 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : fejl CTC1014: #21 0.314 ln: kunne ikke oprette symbolsk link '/etc/localtime': Tilladelse nægtet
4>F:\itsvse\Dockerfile : fejl CTC1014: #21 FEJL: proces "/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone" blev ikke gennemført uden problemer: exit-kode: 1
4>F:\itsvse\Dockerfile : fejl CTC1014: ------
4>F:\itsvse\Dockerfile : fejl CTC1014: > [final 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : fejl CTC1014: #21 0.314 ln: kunne ikke oprette symbolsk link '/etc/localtime': Tilladelse nægtet
Brug root-kontoen til at indstille tidszonen, skift så tilbage til app-kontoen og ændr den som følger:

(Slut)





Tidligere:.NET/C# for at indsamle ToLookup-metoden
Næste:PHP får alle header-oplysningerne
 Udlejer| Opslået på 23/12/2023 17.31.55 |
To værktøjer anbefales til analyse af Docker-billedlaget
https://www.itsvse.com/thread-10063-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com