Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3344|Yanıt: 1

[Kaynak] .NET 8 için Docker temel görüntü değişiklikleri

[Bağlantıyı kopyala]
Yayınlandı 23.12.2023 17:30:10 | | | |
.NET 8'den önce konteynerler varsayılan olarak root olarak çalışıyordu ve .NET 8'den itibaren tüm Linux konteyner imajlarımızda root olmayan kullanıcılar bulunur. .NET konteynerlerini, root olmayan bir kullanıcı olarak tek bir satır kodla barındırabileceksiniz. Bu platform düzeyindeki değişiklik, uygulamanızı daha güvenli hale getirecek ve .NET'i en güvenli geliştirici ekosistemlerinden biri haline getirecektir. Bu küçük bir değişiklik ama derinlemesine savunma üzerinde büyük bir etkisi var.

Docker konteynerlerindeki UID ve GID'leri anlamak

Varsayılan olarak, konteynerdeki süreç kök kullanıcı ayrıcalıklarıyla çalışır ve bu kök kullanıcı, ana makinedeki kök ile aynı kullanıcıdır. Bu korkutucu gelmiyor mu, çünkü bir konteynerdeki bir süreç doğru şansa sahip olduğunda, ana makinedeki her şeyi kontrol edebiliyor!

Referans:Bağlantı girişi görünür.

.NET 8 Docker görüntüsü

.NET 8 Docker görüntüsünde aşağıdaki iki ana değişiklik vardır:

  • Image yeni bir uygulama hesabı ve grup oluşturur ve uygulamayı varsayılan olarak uygulama hesabıyla çalıştırır
  • 8080 portuna geçtiğimde, 80 portu çıktı, çünkü 80 portu ayrıcalıklı bir port olduğu için root ayrıcalıkları gerekiyor (en azından bazı yerlerde).


.NET Docker imajı kaynak kodu adresi:Bağlantı girişi görünür.

Bağımlılıklar şunlardır:

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 şöyle görünüyor:

Aşağıda gösterildiği gibi:



Temel görseli girmek için uygulama hesabını kullanın ve komut şu şekildedir:

Mevcut kullanıcı ve ortam değişkenlerini aşağıdaki şekilde gösterdiği gibi çıkarın:



Referans:Bağlantı girişi görünür.

Dockerfile dosyası

Projenizi bir Docker imajına paketlemeniz gerekiyorsa, yeni bir .NET 8 Docker konteyner desteği oluşturmanız gerekir ve varsayılan Linux ortamı Dockerfile dosya yapılandırması şu şekildedir:

Dockerfile'da sistem zaman dilimini ayarladığınızda, aşağıdaki kod yazılır:

İzin reddedilme hatası aşağıdaki şekilde gerçekleşebilir:

4>F:\itsvse\Dockerfile : error CTC1014: #21 [son 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
4>F:\itsvse\Dockerfile : error CTC1014: #21 0.314 ln: sembolik bağlantı oluşturulamadı '/etc/localtime': İzin reddedildi
4>F:\itsvse\Dockerfile : error CTC1014: #21 HATA: "/bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone" süreci başarıyla tamamlanmadı: çıkış kodu: 1
4>F:\itsvse\Dockerfile : error CTC1014: ------
4>F:\itsvse\Dockerfile : error CTC1014: > [son 3/3] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone:
4>F:\itsvse\Dockerfile : error CTC1014: #21 0.314 ln: sembolik bağlantı oluşturulamadı '/etc/localtime': İzin reddedildi
Kök hesabı kullanarak saat dilimini ayarlayın, sonra uygulama hesabına geri dönün ve aşağıdaki gibi değiştirin:

(Son)





Önceki:.NET/C# ile ToLookup yöntemini toplamak için
Önümüzdeki:PHP tüm başlık bilgilerini alır
 Ev sahibi| Yayınlandı 23.12.2023 17:31:55 |
Docker görüntü katmanını analiz etmek için iki araç önerilir
https://www.itsvse.com/thread-10063-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com