Docker / Windows Container: Windows 2016'da bir ana bilgisayar klasörünü veri birimi olarak bağlama


17

Windows ana bilgisayarından Windows konuk sistemine bir birim nasıl bağlanır?

Docker kullanarak Windows Server 2016 TP4 kullanıyorum.

Https://docs.docker.com/engine/userguide/containers/dockervolumes/ adresindeki belgeleri takip ederek

Mac veya Windows'da Docker Machine kullanıyorsanız, Docker arka plan programınızın OS X veya Windows dosya sisteminize yalnızca sınırlı erişimi vardır. Docker Machine / Users (OS X) veya C: \ Users (Windows) dizininizi otomatik olarak paylaşmaya çalışır. Böylece, OS X'e kullanarak dosyaları veya dizinleri bağlayabilirsiniz.

Windows'ta dizinleri aşağıdakileri kullanarak bağlayın:

docker run -v / c / Kullanıcılar / [yol]: / [kapsayıcı yolu] ... `

Denedim:

docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/meinedaten iis cmd

bu bana bir hata veriyor:

docker : docker: Error response from daemon: Invalid bind mount spec "/c/Users/mlin/meinedaten:/meinedaten": volumeinvalid: Invalid volume specification: 
'/c/Users/mlin/meinedaten:/meinedaten'.

Ayrıca denedim:

docker run --name iisdemo2 -it -p 80:80 -v /c/Users/mlin/meinedaten:/c/meinedaten iis cmd

Misafir / kapsayıcıdaki C: \ meinedaten yolunun zaten var olduğunu ve bunun docker belgelerine göre gerekli olduğunu unutmayın.

Komut, belgelere göre bana doğru görünüyor.

resim açıklamasını buraya girin

(Mac OS X ana bilgisayarından Ubuntu docker konteynerine birimlerin bağlanması iyi çalışıyor, sadece Windows ile ilgili sorunlar yaşıyorum.)

Güncelleme

Ayrıca Docker'ı değil, Windows Kapsayıcılarını yerel olarak (Powershell aracılığıyla) kullanmaya çalıştım. Https://msdn.microsoft.com/tr-tr/virtualization/windowscontainers/quick_start/manage_powershell#create-a-shared-folder adresindeki belgeleri takip ediyorum .

Add-ContainerSharedFolder -ContainerName mysql2 -SourcePath C:\Users\mlin\meinedaten -DestinationPath C:\meinedaten

Ama ben de sorunlar yaşıyorum.

resim açıklamasını buraya girin

Sonunda ilgili konular:

Yanıtlar:


23

Windows'ta, yollar Windows tarzı anlambilim kullanılarak belirtilmelidir. Yolun önünde eğik çizgi kullanmamalısınız.

docker run -v c:\Users\[path]:c:\[containerPath]

Kopyala veya ekle komutuyla klasörleri oluşturduysanız bu çalışmaz.
Steve Coleman

ana bilgisayar dizini de göreceli olabilir. / www / html`
FantomX1

7

Windows 10 Yıldönümü Güncellemesi ve Windows Server 2016 RTM.

Birim ekleyin:

docker run -d -v my-named-volume:C:\MyNamedVolume testimage:latest

Bir ana bilgisayar dizini ekleyin:

docker run -d -v C:\Temp\123:C:\My\Shared\Dir testimage:latest

0

Docker CLI'yı bir Mac makinesinden mi çalıştırıyorsunuz ve Windows kapsayıcılarını mı çalıştırıyorsunuz? Eğer öyleyse, bir DOCKER_HOSTenv var setiniz olduğunu ve daemon'unuzun bir Windows makinesinde çalıştığını varsayıyorum (Windows kapsayıcılarını Windows dışında herhangi bir işletim sisteminde çalıştıramayacağınızdan).

Bu durumda, kaba bağlamaya çalıştığınız dizin, docker CLI'sini çalıştıran makinenin değil, docker ana bilgisayarındaki bir dizin olmalıdır. Bu nedenle, iki nokta üst üste her iki tarafında Windows biçimini kullanabilirsiniz. Mac'inizde bulunan bir dizini bağlamaya çalışıyorsanız, bu parçayı henüz çözemedim, ancak kendime ihtiyacım olacak :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.