Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 3485|Svar: 1

[Källa] Docker-basavbildningar för .NET 8

[Kopiera länk]
Publicerad på 2023-12-23 17:30:10 | | | |
Före .NET 8 kördes containrar som root som standard, och från och med .NET 8 kommer alla våra Linux-containerbilder att innehålla icke-root-användare. Du kommer att kunna hosta .NET-containrar med en enda kodrad som icke-root-användare. Denna plattformsnivåförändring kommer att göra din applikation säkrare och göra .NET till ett av de säkraste utvecklarekosystemen. Detta är en liten förändring, men den har stor påverkan på försvaret i djupet.

Förstå UID:erna och GID:erna i Docker-containrar

Som standard körs processen i containern med root-användarbehörigheter, och denna root-användare är samma användare som root i värddatorn. Låter inte det läskigt, för det betyder att när en process i en container får rätt chans kan den kontrollera allt på värddatorn!

Hänvisning:Inloggningen med hyperlänken är synlig.

.NET 8 Docker-avbildning

Det finns två huvudsakliga förändringar i .NET 8 Docker-bilden, enligt följande:

  • Image skapar ett nytt appkonto och grupp, och kör appen med app-kontot som standard
  • När jag bytte till port 8080 visade det sig vara port 80, eftersom port 80 är en privilegierad port krävs root-rättigheter (åtminstone på vissa ställen)


.NET Docker bildkällkodsadress:Inloggningen med hyperlänken är synlig.

Beroendena är följande:

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 ut så här:

Som visas nedan:



Använd appkontot för att mata in grundbilden, och kommandot är följande:

Ange de aktuella användar- och miljövariablerna, som visas i följande figur:



Hänvisning:Inloggningen med hyperlänken är synlig.

Dockerfile-filen

Om du behöver paketera ditt projekt i en Docker-avbildning behöver du skapa ett nytt stöd för .NET 8 Docker-container, och standardkonfigurationen för Linux-miljöns Dockerfile-fil är följande:

Om du ställer in systemets tidszon i Dockerfile, följer följande kod:

Felet om att Tillstånd nekas kan uppstå enligt följande:

4>F:\itsvse\Dockerfile : fel CTC1014: #21 [slutgiltig 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : fel CTC1014: #21 0.314 ln: misslyckades med att skapa symbolisk länk '/etc/localtime': Behörighet nekad
4>F:\itsvse\Dockerfile : fel CTC1014: #21 FEL: process "/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone" slutfördes inte framgångsrikt: exitkod: 1
4>F:\itsvse\Dockerfile : fel CTC1014: ------
4>F:\itsvse\Dockerfile : fel CTC1014: > [final 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : fel CTC1014: #21 0.314 ln: misslyckades med att skapa symbolisk länk '/etc/localtime': Behörighet nekad
Använd root-kontot för att ställa in tidszonen, byt sedan tillbaka till appkontot och ändra det enligt följande:

(Slut)





Föregående:.NET/C# för att samla in ToLookup-metoden
Nästa:PHP får all headerinformation
 Hyresvärd| Publicerad på 2023-12-23 17:31:55 |
Två verktyg rekommenderas för att analysera Docker-bildlagret
https://www.itsvse.com/thread-10063-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com