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

时间:2016-09-07 12:41:43

标签: windows docker tensorflow caffe

我正在使用Windows,我需要使用只有Linux(TensorFlow,Caffe)才能使用的库。我想在Docker上运行该软件。我无法清楚地理解码头机制,所以当我遇到问题时,我完全迷失了。我该怎么做以及它应该如何运作?

2 个答案:

答案 0 :(得分:1)

修改

关于Windows Docker托管功能(Windows主机上的容器):

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

关于Windows Docker容器功能(容器中的Windows)

  • Windocks在容器中提供.Net和SQL Server支持(感谢@paul)。
  • 在Windows 2016上,一个基于windowsservercore的Docker镜像允许您运行Windows服务,请参阅此simple example
  • 在Windows 10& Hyper-V,纳米服务器基础Docker镜像允许您运行Windows命令(请参阅此处helloworld PowerShell示例)。需要Windows版本的Docker守护程序,并且无法在Linux Docker主机上运行,​​请参阅here

原始答案:

首先是坏消息:Docker不是(不完全正确,请参阅上面的编辑)本机支持Windows主机(好吧,这取决于你如何定义“本机”。我的意思是,Docker总是需要一个类似Linux的Docker主机,请看下面的好消息。)

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

最好的消息是:由于Docker容器在类似Linux的主机上运行并且在容器内提供Linux环境,因此您可以在容器中安装任何Linux软件,就像在本机Linux上一样机。比如,通过发出命令

,从Ubuntu Docker镜像启动具有交互式终端的Docker容器
docker run -it ubuntu bash

您可以在此容器中运行任何apt-get命令。

请注意,您在容器中更改的数据并不是持久性的。在容器中安装SW后,您可能希望通过使用docker commit命令从新容器构建新的Docker镜像来保留您的工作。创建此类映像的高级自动化方法是将经过测试的安装命令作为RUN指令添加到Dockerfile中,并从中构建映像,而无需手动运行交互式容器并手动添加软件。

答案 1 :(得分:0)

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

Scott Hanselman展示了如何使用与Playing With Tensor Flow On Windows中的Linux机器完全相同的命令来使用TensorFlow。从Scott的帖子中复制:

$ 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