Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 3344|Svare: 1

[Kilde] Endringer i Docker-basebilde for .NET 8

[Kopier lenke]
Publisert på 23.12.2023 17:30:10 | | | |
Før .NET 8 kjørte containere som root som standard, og fra og med .NET 8 vil alle våre Linux-containerbilder inneholde brukere som ikke er root. Du vil kunne hoste .NET-containere med én enkelt kodelinje som ikke-root-bruker. Denne plattformnivåendringen vil gjøre applikasjonen din mer sikker og gjøre .NET til et av de sikreste utviklerøkosystemene. Dette er en liten endring, men det har stor innvirkning på forsvaret i dybden.

Forstå UID-ene og GID-ene i Docker-containere

Som standard kjører prosessen i containeren med root-brukerprivilegier, og denne root-brukeren er den samme som root-brukeren på vertsmaskinen. Høres ikke det skummelt ut, for det betyr at når en prosess i en beholder får riktig sjanse, kan den kontrollere alt på vertsmaskinen!

Referanse:Innloggingen med hyperkoblingen er synlig.

.NET 8 Docker-bilde

Det er to hovedendringer i .NET 8 Docker-bildet, som følger:

  • Image oppretter en ny app-konto og gruppe, og kjører appen med app-kontoen som standard
  • Byttet til port 8080, viste det seg å være port 80, siden port 80 er en privilegert port, kreves root-rettigheter (i hvert fall noen steder)


.NET Docker-bildekildekodeadresse:Innloggingen med hyperkoblingen er synlig.

Avhengighetene 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 slik ut:

Som vist nedenfor:



Bruk app-kontoen for å legge inn det grunnleggende bildet, og kommandoen er som følger:

Eksporter de nåværende bruker- og miljøvariablene, som vist i følgende figur:



Referanse:Innloggingen med hyperkoblingen er synlig.

Dockerfile-fil

Hvis du trenger å pakke prosjektet ditt inn i et Docker-image, må du opprette en ny .NET 8 Docker-containerstøtte, og standard Linux-miljøets Dockerfile-filkonfigurasjon er som følger:

Hvis du setter systemets tidssone i Dockerfile, følger følgende kode:

Feilen Tillatelse nektet kan oppstå som følger:

4>F:\itsvse\Dockerfile : feil CTC1014: #21 [final 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : feil CTC1014: #21 0.314 ln: mislyktes i å opprette symbolsk lenke '/etc/localtime': Tillatelse nektet
4>F:\itsvse\Dockerfile : feil CTC1014: #21 FEIL: prosess "/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone" fullførte ikke vellykket: exit-kode: 1
4>F:\itsvse\Dockerfile : feil CTC1014: ------
4>F:\itsvse\Dockerfile : feil CTC1014: > [siste 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : feil CTC1014: #21 0.314 ln: mislyktes i å opprette symbolsk lenke '/etc/localtime': Tillatelse nektet
Bruk root-kontoen til å sette tidssonen, bytt deretter tilbake til app-kontoen, og endre den slik:

(Slutt)





Foregående:.NET/C# for å samle inn ToLookup-metoden
Neste:PHP henter all header-informasjonen
 Vert| Publisert på 23.12.2023 17:31:55 |
To verktøy anbefales for å analysere Docker-bildelaget
https://www.itsvse.com/thread-10063-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com