我如何使用Windows容器进行软件testing?

我试图弄清楚如何在Windows 10机器上进行一些软件testing,而且我不确定是否可以使用Docker或其他技术进行操作。 如果任何人有任何build议,如果可能或不可能,我需要做什么技术,这将是伟大的,更乐意去调查,如果我知道我正在朝着正确的方向。

基本上我想build立一个容器,它使用我的主要Windows 10安装作为基础,然后隔离容器,将:

  • 看起来和行为,就好像他们是同一个Windows 10安装的一部分
  • 与应用程序和文件夹结构方面运行的其他容器隔离。 我希望能够启动容器中的应用程序,使其能够访问主要安装以及容器内的文件夹,然后将结果传递回主要的Windows安装。
  • 有能力重置回原来的图像状态,所以当我在将来某个时候启动容器时,安装到容器中的任何应用程序或文件都不存在。 我想回到图像中定义的原始状态(可能只是一个文件夹结构,因为任何默认应用程序都将安装在基本Windows安装上)。

那有意义吗? 我有兴趣听到有关这是否可能的任何想法。 我一直在试图做几天没有运气,使用Docker,Docker-Machine,Hyper-V以及在线发现的博客/教程。

谢谢,

PH

第一件事是 – 不,你不能使用Windows 10作为基地。 您可以将Windows应用程序打包为Docker容器映像,但是它们需要基于服务器操作系统 – Nano Server或Windows Server Core 。 您可以在Windows 10上从这些映像运行容器。

你的容器不会看起来像在Windows 10上运行的应用程序一样。它们是独立的单元,看起来更像独立的计算机 – 每个容器都有自己的(虚拟)IP地址和文件系统。 您可以通过以下方式将容器与主机集成在一起:

  • 发布端口,这样networking请求到主机得到路由到容器,例如,当你浏览到http:// localhost:8080你实际上可以得到一个8080端口发布的容器的响应;
  • 使用卷将主机文件系统的一部分挂载到容器中,因此您的容器可以读取和写入它认为是本地目录的内容,但这实际上是主机上的挂载目录,所以它就像networking共享那样工作。

Docker镜像是快照 – 当你从镜像中运行一个容器时,镜像将会保持镜像的状态。 你可以改变容器中的东西,但不会改变图像。 杀死那个容器,从相同的图像开始一个新的,它将有原始的状态。

我们在Windows上使用Docker的早期阶段,但是MSDN上的Windows 10快速入门将帮助您开始,或者您可以检查我的博客,以便在Windows Server 2016 VM上运行Docker中的IIS 。