Kapsayıcı Depolamaya Genel Bakış

Bu konu, kapsayıcıların Windows'ta depolamayı kullanma yöntemlerine genel bir bakış sağlar. Kapsayıcılar, depolama söz konusu olduğunda sanal makinelerden farklı davranır. Doğası gereği kapsayıcılar, içinde çalışan bir uygulamanın konağın dosya sisteminin her yerine durum yazmasını önleyecek şekilde oluşturulur. Kapsayıcılar varsayılan olarak "scratch" alanı kullanır, ancak Windows, depolamayı kalıcı hale getirmek için bir yöntem de sağlar.

Karalama Alanı

Windows kapsayıcıları varsayılan olarak kısa ömürlü depolama kullanır. Tüm kapsayıcı G/Ç'leri bir "karalama alanında" gerçekleşir ve her kapsayıcı kendi çiziklerini alır. Dosya oluşturma ve dosya yazma işlemleri geçici alanda yakalanır ve ana sisteme aktarılmaz. Bir kapsayıcı örneği durdurulduğunda, geçici alanda gerçekleşen tüm değişiklikler atılır. Yeni bir kapsayıcı örneği başlatıldığında, örnek için yeni bir geçici depolama alanı sağlanır.

Katmanlı Depolama

Kapsayıcılara Genel Bakışaçıklandığı gibi, kapsayıcı görüntüleri bir dizi katman olarak ifade edilen bir dosya paketidir. Katman depolama, kapsayıcıda yerleşik olarak bulunan tüm dosyalardır. Her docker pull yaptığınızda, bu kapsayıcıyı docker run yaptığınızda - bunlar hep aynıdır.

Katmanların nerede depolandığı ve nasıl değiştirileceği

Varsayılan yüklemede katmanlar C:\ProgramData\docker depolanır ve "görüntü" ve "windowsfilter" dizinleri arasında bölünür. Windows Docker Altyapısı belgelerinde gösterildiği gibi, docker-root yapılandırmasını kullanarak katmanların depolandığı yeri değiştirebilirsiniz.

Not

Katman depolama için yalnızca NTFS desteklenir. ReFS ve küme paylaşılan birimleri (CSV) desteklenmez.

Katman dizinlerindeki hiçbir dosyayı değiştirmemelisiniz; bunlar aşağıdaki gibi komutlar kullanılarak dikkatle yönetilir:

Katman depolamada desteklenen işlemler

Çalışan kapsayıcılar, işlemler hariç çoğu NTFS operasyonunu kullanabilir. Bu, ACL'lerin ayarlanmasını içerir ve tüm ACL'ler kapsayıcı içinde denetlenır. İşlemleri kapsayıcı içinde birden çok kullanıcı olarak çalıştırmak istiyorsanız, RUN net user /create ...ile Dockerfile kullanıcıları oluşturabilir, dosya ACL'lerini ayarlayabilir ve ardından Dockerfile USER yönergesini kullanarak işlemleri bu kullanıcıyla çalışacak şekilde yapılandırabilirsiniz.

Kalıcı Depolama

Windows kapsayıcıları, bağlamalar ve birimler aracılığıyla kalıcı depolama sağlamaya yönelik mekanizmaları destekler. Daha fazla bilgi edinmek için bkz. Kapsayıcılarda Kalıcı Depolama.

Depolama Sınırları

Windows uygulamaları için yaygın bir desen, yeni dosyaları yüklemeden veya oluşturmadan veya geçici dosyaları temizleme tetikleyicisi olarak boş disk alanı miktarını sorgulamaktır. Uygulama uyumluluğunu en üst düzeye çıkarma hedefiyle, Windows kapsayıcısında bulunan C: sürücüsü 20 GB sanal ücretsiz boyutu temsil eder.

Bazı kullanıcılar bu varsayılanı geçersiz kılmak ve boş alanı daha küçük veya daha büyük bir değerle yapılandırmak isteyebilir. bu, "storage-opt" yapılandırmasındaki "boyut" seçeneği ile gerçekleştirilebilir.

Örnek

Komut satırı: docker run --storage-opt "size=50GB" mcr.microsoft.com/windows/servercore:ltsc2019 cmd

Docker yapılandırma dosyasını doğrudan da değiştirebilirsiniz:

"storage-opts": [
    "size=50GB"
  ]

Bahşiş

Bu yöntem docker derlemesi için de çalışır. Docker yapılandırma dosyasını değiştirme hakkında daha fazla bilgi için docker yapılandırma belgesine bakın.