如何在Windows上的Docker上运行Linux库?

我在Windows上工作,我需要使用库,只能用于Linux(TensorFlow,Caffe)。 我想在Docker上运行这个软件。 我无法清楚地了解docker机制,所以我完全失去了,直到我的问题。 我该怎么做,它应该如何工作?

编辑:

关于Windows Docker托pipefunction(Windows主机上的容器):

  • Windows 10提供Docker主机function,但仅基于Hyper-V,即通过类似Linux的VM。
  • Windows 2016提供本地Docker主机function(感谢@friism指出了这一点)。

关于Windows Docker容器function(容器中的Windows)

  • Windocks在Containers中提供.Net和SQL Server支持(感谢@paul)。
  • 在Windows 2016上,基于windowsservercore的Docker镜像允许您运行Windows服务,请参阅此简单示例 。
  • 在Windows 10和Hyper-V上,基于纳米服务器的Docker镜像允许您运行Windows命令(请参阅这里的helloworld PowerShell示例)。 需要Windows版本的Docker守护进程,并且不能在Linux Docker主机上工作,请参阅此处 。

原始答案:

首先是坏消息:Docker不是(不完全正确,见上面的编辑)在Windows主机上本地支持(好吧,这取决于你如何定义“本地”。新闻下面)。

好消息是Docker可以通过在Docker主机上运行Docker容器来使用,Docker主机在Windows上作为虚拟Linux机器运行,例如在VirtualBox,VMware上,或者现在正式在Windows 10 Professional上首选:在Hyper-V上。

对你来说最好的消息是:因为Docker容器运行在类似Linux的主机上,并且在一个容器中提供了一个Linux环境,所以你可以像使用本地Linux机器一样在容器中安装任何Linux软件。 比方说,你从一个Ubuntu Docker映像启动一个带有交互式terminal的Docker容器,通过发出这个命令

docker run -it ubuntu bash 

你可以在这个容器中运行任何apt-get命令。

请注意,您在容器中更改的数据并不意味着持久性。 一旦你在容器中安装了软件,你可能想要通过使用docker commit命令从新容器中构build一个新的Docker镜像来保留你的工作。 创build这种图像的高级自动化方法是将经过testing的安装命令作为运行指令添加到Dockerfile中,并从中构build映像,而无需手动运行交互式容器并手动添加软件。

Windows 10周年纪念版包括一个Linux子系统(基于Ubuntu), Bash on Windows通常称为Bash on Windows 。 这不仅仅是Bash,它是一个转换层,允许你在Windows上运行用户模式应用程序,在Ubuntu上运行它。 您可以使用它来运行用户模式的应用程序。

Scott Hanselman展示了如何使用TensorFlow这种方式,使用完全相同的命令,您将在Linux上使用Tensor Flow在Windows上播放 。 从Scott的post复制:

 $ 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 

将安装TensorFlow和

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

将开始执行MNIST演示

唯一的烦恼是Ubuntu 14.04.5 LTS,而不是最新的16.04