Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir uygulamanın kapsayıcıdaki verileri kalıcı hale getirebilmesinin önemli olduğu veya dosyaları kapsayıcı derleme zamanında dahil edilmeyen bir kapsayıcıda göstermek istediğiniz durumlar olabilir. Kalıcı depolama kapsayıcılara birkaç yolla verilebilir:
- Bağlama noktaları
- Adlandırılmış birimler
Docker, birimleri nasıl kullanacağınızı ayrıntılı olarak ele alıyor, bu yüzden önce bunu okumanız en iyisidir. Bu sayfanın geri kalanı Linux ve Windows arasındaki farklara odaklanır ve Windows'da örnekler sağlar.
Bağlama Bağlantıları
Bağlama noktaları, kapsayıcının bir dizini konakla paylaşmasına olanak sağlar. Yerel makinede, bir kapsayıcıyı yeniden başlattığınızda kullanılabilir olan veya birden çok kapsayıcıyla paylaşmak istediğiniz dosyaları depolayacak bir yer arıyorsanız, bu kullanışlıdır. Kapsayıcının aynı dosyalara erişimi olan birden çok makinede çalışmasını istiyorsanız, bunun yerine adlandırılmış birim veya SMB bağlaması kullanılmalıdır.
Uyarı
Küme Paylaşılan Birimleri (CSV) üzerinde doğrudan bağlama desteklenmez, ancak kapsayıcı konağı olarak çalışan sanal makineler bir CSV biriminde çalıştırılabilir.
İzinler
Bağla montajları için kullanılan izin modeli, kapsayıcınızın yalıtım seviyesine göre değişir.
Hyper-V yalıtımı kullanan kapsayıcılar basit bir salt okunur veya okuma-yazma izin modeli kullanır. Dosyalara ana bilgisayarda LocalSystem hesabı kullanılarak erişilir. Kapsayıcıda erişim reddedildiyse, ana bilgisayarda bu dizine LocalSystem erişimi olduğundan emin olun. Salt okunur işareti kullanıldığında, kapsayıcı içindeki birimde yapılan değişiklikler, konak üzerindeki dizinde görünmez ve kalıcı hale gelmez.
İşlem yalıtımı kullanan Windows kapsayıcıları, verilere erişmek için kapsayıcı içindeki işlem kimliğini kullandıklarından biraz farklıdır ve bu da dosya ACL'lerinin kabul edilmiş olduğu anlamına gelir. Kapsayıcıda çalışan işlemin kimliği (varsayılan olarak Windows Server Core'da "ContainerAdministrator" ve Nano Server kapsayıcılarındaki "ContainerUser"), LocalSystem yerine, bağlı birimdeki dosyalara ve dizinlere erişim sağlamak için kullanılacak ve verileri kullanmak için bu kimliğe erişim izni verilmesi gerekecektir.
Bu kimlikler yalnızca kapsayıcı bağlamında mevcut olduğundan (dosyaların depolandığı konakta değil), kapsayıcılara erişim izni vermek için ACL'leri yapılandırırken Authenticated Users gibi iyi bilinen bir güvenlik grubu kullanmalısınız.
Uyarı
gibi C:\ hassas dizinleri güvenilmeyen bir kapsayıcıya bağlamayın. Bu, normalde erişimi olmayan ve güvenlik ihlali oluşturabilecek konak üzerindeki dosyaları değiştirmesine olanak sağlar.
Örnek kullanım:
-
docker run -v c:\ContainerData:c:\data:ROyalnızca okuma erişimi için -
docker run -v c:\ContainerData:c:\data:RWokuma-yazma erişimi için -
docker run -v c:\ContainerData:c:\dataokuma-yazma erişimi için (varsayılan)
Symlinks
Symlink'ler kapsayıcıda çözümlenir. Ana makine yolunu bir sembolik bağlantı olan veya sembolik bağlantılar içeren bir kapsayıcıya bağlarsanız, kapsayıcı bunlara erişemez.
SMB Montajları
Windows Server sürüm 1709 ve sonraki sürümlerde , "SMB Genel Eşleme" adlı özellik, konağa bir SMB paylaşımı bağlamayı ve ardından bu paylaşımdaki dizinleri bir kapsayıcıya geçirmeyi mümkün kılar. Kapsayıcının belirli bir sunucu, paylaşım, kullanıcı adı veya parolayla yapılandırılması gerekmez; bunların hepsi ana bilgisayarda işlenir. Kapsayıcı, sanki yerel depolama alanı varmış gibi çalışır.
Yapılandırma Adımları
Kapsayıcı sunucusunda, uzak SMB paylaşımını küresel olarak eşleyin.
$creds = Get-Credential New-SmbGlobalMapping -RemotePath \\contosofileserver\share1 -Credential $creds -LocalPath G:Bu komut, uzak SMB sunucusuyla kimlik doğrulaması yapmak için kimlik bilgilerini kullanır. Ardından, uzak paylaşım yolunu G: sürücü harfiyle eşleyin (başka herhangi bir kullanılabilir sürücü harfi olabilir). Bu kapsayıcı ana bilgisayarında oluşturulan kapsayıcılar artık veri birimlerinin G: sürücüsündeki bir yola eşlenmesine sahip olabilir.
Uyarı
Kapsayıcılar için SMB genel eşlemesi kullanılırken, kapsayıcı konağındaki tüm kullanıcılar uzak paylaşıma erişebilir. Kapsayıcı ana bilgisayarında çalışan tüm uygulamalar eşlenmiş uzak paylaşıma da erişebilir.
Kapsayıcılar oluşturun ve veri birimlerini, genel olarak bağlanan SMB paylaşımlarına haritalayın docker run -it --name demo -v g:\ContainerData:c:\AppData1 mcr.microsoft.com/windows/servercore:ltsc2019 cmd.exe
Kapsayıcının içinde c:\AppData1, uzak paylaşımın "ContainerData" dizinine eşlenir. Genel olarak eşlenmiş uzak paylaşımda depolanan tüm veriler kapsayıcı içindeki uygulamalar tarafından kullanılabilir. Birden çok kapsayıcı aynı komutla bu paylaşılan verilere okuma/yazma erişimi alabilir.
Bu SMB genel eşleme desteği, aşağıdakiler dahil tüm uyumlu SMB sunucularında çalışabilen SMB istemci tarafı özelliğidir:
- Depolama Alanları Doğrudan (S2D) veya geleneksel SAN üzerinde Ölçeklenebilir Dosya Sunucusu
- Azure Dosyalar (SMB paylaşımı)
- Geleneksel Dosya Sunucusu
- SMB protokolünün üçüncü taraf uygulaması (ör. NAS gereçleri)
Uyarı
SMB genel eşlemesi DFS Ad Alanları (DFSN) klasörlerini desteklemez. Örneğin, bir DFSN kök paylaşımını New-SmbGlobalMapping -LocalPath Z: -RemotePath \\contoso.com\share1' ile eşlerseniz, bu kökün klasör hedeflerini okumak "Ağ konumuna ulaşılamıyor" hatasını döndürür.
Adlandırılmış Birimler
Adlandırılmış birimler, bir birimi ada göre oluşturmanıza, bir kapsayıcıya atamanıza ve daha sonra aynı adla yeniden kullanmanıza olanak sağlar. Oluşturulduğu yerin gerçek yolunu takip etmeniz gerekmez, yalnızca ismi takip edebilirsiniz. Windows'daki Docker altyapısı, yerel makinede birimler oluşturabilen yerleşik bir adlandırılmış birim eklentisine sahiptir. Adlandırılmış birimleri birden çok makinede kullanmak istiyorsanız ek bir eklenti gerekir.
Örnek adımlar:
-
docker volume create unwound- 'unwound' adlı bir birim oluştur -
docker run -v unwound:c:\data microsoft/windowsservercore- c:\data ile eşlenmiş birim kullanılarak bir kapsayıcı başlatın - Kapsayıcıdaki c:\data dizinine bazı dosyalar yazın ve kapsayıcıyı durdurun
-
docker run -v unwound:c:\data microsoft/windowsservercore- Yeni bir kapsayıcı başlat - Yeni kapsayıcıda çalıştırma
dir c:\data- dosyalar hala orada
Uyarı
Windows Server hedef yol adlarını (kapsayıcının içindeki yol) küçük harfe dönüştürür; -v unwound:c:\MyDataörneğin, veya -v unwound:/app/MyData Linux kapsayıcılarında, kapsayıcı içinde veya c:\mydata Linux kapsayıcılarında /app/mydatabir dizinin eşlenmesine (ve mevcut değilse oluşturulmasına) neden olur.