2016-09-07 5 views
0

Ich arbeite an Windows und ich brauche Bibliotheken, die nur mit Linux (TensorFlow, Caffe) verfügbar sind. Ich möchte die Software auf Docker ausführen. Ich kann den Docker-Mechanismus nicht klar verstehen, also bin ich völlig verloren, wenn es mein Problem angeht. Was soll ich tun und wie sollte es funktionieren?Wie Linux-Bibliotheken auf Docker unter Windows ausführen?

+0

In Windows 10 Anniversary Edition können Sie das Linux-Subsystem anstelle einer VM verwenden. –

+0

Welches Betriebssystem * willst du verwenden? Docker ist nur zum Packen und Bereitstellen Ihrer Anwendung nützlich. Linux-Code wird unter Windows nicht ohne eine VM ausgeführt. –

Antwort

1

Edit:

über Windows-Docker-Funktionen (Container auf einer Windows-Host) Hosting:

  • Windows-10 bietet Docker Host-Funktionen, aber nur auf Basis von Hyper-V, dh durch Mittel von Linux-ähnlichen VMs.
  • Windows 2016 bietet native Docker Host-Funktionen (dank @ Friism, um dies weiter unten zu zeigen).

über Windows-Docker Container-Funktionen (Windows in einem Container):

  • Windocks bietet .Net und SQL Server-Unterstützung innerhalb Container (Danke für @ Paul).
  • In Windows 2016 können Sie Windows Server Core-Docker-Image Windows-Dienste ausführen, siehe simple example.
  • Auf einem Windows 10 & Hyper-V, das Nanoserver-Basis-Docker-Bild können Sie Windows-Befehle ausführen (siehe hier ein helloworld PowerShell Beispiel). Erfordert die Windows-Version des Docker-Daemon und funktioniert nicht auf Linux-Docker-Hosts, siehe here.

Ursprüngliche Antwort:

schlechte Nachricht zuerst: Docker nicht ist (nicht ganz korrekt, siehe Bearbeiten oben) unterstützt auf Windows-Hosts nativ (okay, das hängt davon ab, wie definieren Sie "nativ". Ich meine, Docker benötigt immer einen Linux-ähnlichen Docker-Host, siehe unten die guten Nachrichten.

Die gute Nachricht ist, dass Docker unter Windows verwendet werden kann, indem Docker-Container auf einem Docker-Host ausgeführt werden, der als virtueller Linux-Computer unter Windows ausgeführt wird. auf VirtualBox, VMware oder, heutzutage offiziell bevorzugt auf Windows 10 Professional: auf Hyper-V.

Die beste Nachricht für Sie ist: Da Docker-Container auf Linux-ähnlichen Hosts laufen und eine Linux-Umgebung innerhalb eines Containers bieten, können Sie jede Linux-Software innerhalb des Containers genauso installieren wie auf einem nativen Linux-Maschine. Sprich: Sie einen Docker-Container mit interaktiven Terminal von einem Ubuntu Docker Bild starten, indem Sie den Befehl Ausgabe

docker run -it ubuntu bash 

können Sie einen beliebigen apt-get Befehl in diesem Container laufen.

Beachten Sie, dass die Daten, die Sie in einem Container geändert haben, nicht persistent sind. Nachdem Sie die Software im Container installiert haben, möchten Sie möglicherweise Ihre Arbeit beibehalten, indem Sie mithilfe der Befehle docker commit ein neues Docker-Image aus dem neuen Container erstellen.Eine erweiterte und automatisierte Methode zum Erstellen solcher Images besteht darin, die getesteten Installationsbefehle in einer Docker-Datei als RUN-Anweisungen hinzuzufügen und das Image daraus zu erstellen, ohne einen interaktiven Container manuell ausführen und die Software manuell hinzufügen zu müssen.

+1

Windows 10 verfügt auch über ein Linux-Subsystem (alias Bash unter Windows), sodass Sie keine Linux-VM * benötigen. Scott Hanselman hat eine Demo, die [unter Verwendung von TensofFlow auf Windows auf diese Weise zeigt] (http://www.hanselman.com/blog/PlayingWithTensorFlowOnWindows.aspx) –

+0

Interessant. Weißt du, ob Docker auf diesem Subsystem läuft? Ich verstehe Vladislavs Frage so, dass er seine Software auf Docker laufen lassen will und ich dachte bisher, dass Docker eine virtuelle Maschine benötigt, wenn man sie unter Windows laufen lassen will. – Olli

+0

Ich habe diese [Serverfault Link] (http://serverfault.com/questions/767994/can-your-run-docker-natively-on-the-new-windows-10-ubuntu-bash-userspace) und dies gefunden [docker forum link] (https://forums.docker.com/t/docker-for-windows-and-windows-subsystem-for-linux/12854/12), das den Docker unter Windows Bash Thema diskutiert. Wenn die Antworten (noch) stimmen, wird Docker wahrscheinlich nicht unter Windows 10 bash unterstützt. Sind Sie einverstanden? – Olli

0

Windows 10 Anniversary Edition enthält ein Linux-Subsystem (Ubuntu-basiert), was gemeinhin Bash on Windows genannt wird. Es ist nicht nur Bash, es ist eine Übersetzungsschicht, mit der Sie Benutzer-Modus-Anwendungen auf Windows selbst, und die Ubuntu-Binärdateien auf der Oberseite ausführen können. Sie können damit Anwendungen im Benutzermodus ausführen.

Scott Hanselman zeigt, wie Sie TensorFlow auf diese Weise verwenden können, indem Sie genau den gleichen Befehl verwenden wie auf einem Linux-Rechner in Playing With Tensor Flow On Windows. Das Kopieren von Scotts Beitrag:

$ sudo apt-get install python-pip python-dev 
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl 

wird TensorFlow installieren und

$ cd tensorflow/models/image/mnist 
$ python convolutional.py 

startet die MNIST Demo Ausführung

Das einzige Ärgernis ist, dass es Ubuntu 14.04.5 LTS ist, nicht die neueste 16.04

+1

Eine Erklärung für den Downvote? Sie können * Tensorflow unter Windows 10 * verwenden und * können * den gleichen Code in einem Docker-Container, der auf Linux abzielt, ausführen. –

Verwandte Themen