Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 3344|Antwort: 1

[Quelle] Docker-Basis-Image-Änderungen für .NET 8

[Link kopieren]
Veröffentlicht am 23.12.2023 17:30:10 | | | |
Vor .NET 8 liefen Container standardmäßig als Root, und ab .NET 8 enthalten alle unsere Linux-Container-Images Nicht-Root-Nutzer. Als Nicht-Root-Nutzer kannst du .NET-Container mit einer einzigen Codezeile hosten. Diese plattformweite Änderung wird Ihre Anwendung sicherer machen und .NET zu einem der sichersten Entwickler-Ökosysteme machen. Das ist eine kleine Änderung, aber sie hat großen Einfluss auf die Defense in Depth.

Verstehen Sie die UIDs und GIDs in Docker-Containern

Standardmäßig läuft der Prozess im Container mit Root-Benutzerrechten, und dieser Root-Benutzer ist derselbe Benutzer wie der Root auf der Host-Maschine. Klingt das nicht beängstigend, denn das bedeutet, dass ein Prozess, sobald er die richtige Chance hat, alles auf der Host-Maschine steuern kann!

Referenz:Der Hyperlink-Login ist sichtbar.

.NET 8 Docker-Abbild

Es gibt zwei Hauptänderungen am .NET 8 Docker-Image, wie folgt:

  • Image erstellt ein neues App-Konto und eine neue Gruppe und führt die App standardmäßig mit dem App-Konto aus
  • Auf Port 8080 gewechselt, stellte sich heraus, dass es Port 80 war, da Port 80 ein privilegierter Port ist, Root-Rechte erforderlich sind (zumindest an einigen Orten) erforderlich


Quellcode-Adresse des .NET Docker-Images:Der Hyperlink-Login ist sichtbar.

Die Abhängigkeiten sind wie folgt:

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 sieht so aus:

Wie unten gezeigt:



Verwenden Sie das App-Konto, um das Basisimage einzugeben, und der Befehl lautet wie folgt:

Geben Sie die aktuellen Benutzer- und Umweltvariablen aus, wie in der folgenden Abbildung dargestellt:



Referenz:Der Hyperlink-Login ist sichtbar.

Dockerfile-Datei

Wenn Sie Ihr Projekt in ein Docker-Image verpacken müssen, müssen Sie eine neue .NET 8 Docker-Container-Unterstützung erstellen, und die Standardkonfiguration der Dockerfile-Dateikonfiguration der Linux-Umgebung ist wie folgt:

Wenn Sie die Systemzeitzone in der Dockerfile einstellen, folgt folgender Code:

Der Fehler mit der verweigerten Genehmigung kann wie folgt auftreten:

4>F:\itsvse\Dockerfile : Fehler CTC1014: #21 [final 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : Fehler CTC1014: #21 0.314 ln: Konnte keinen symbolischen Link '/etc/localtime' erstellen: Berechtigung verweigert
4>F:\itsvse\Dockerfile : Fehler CTC1014: #21 FEHLER: Prozess "/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone" wurde nicht erfolgreich abgeschlossen: Ausgangscode: 1
4>F:\itsvse\Dockerfile : Fehler CTC1014: ------
4>F:\itsvse\Dockerfile : Fehler CTC1014: > [final 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : Fehler CTC1014: #21 0.314 ln: Konnte keinen symbolischen Link '/etc/localtime' erstellen: Berechtigung verweigert
Verwenden Sie das Root-Konto, um die Zeitzone einzustellen, wechseln Sie dann zurück zum App-Konto und ändern Sie es wie folgt:

(Ende)





Vorhergehend:.NET/C#, um die ToLookup-Methode zu sammeln
Nächster:PHP erhält alle Header-Informationen
 Vermieter| Veröffentlicht am 23.12.2023 17:31:55 |
Zwei Werkzeuge werden zur Analyse der Docker-Bildschicht empfohlen
https://www.itsvse.com/thread-10063-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com