如何使用Windows Containers进行软件测试?

时间:2016-09-28 11:23:58

标签: windows testing docker automated-tests acceptance-testing

我试图弄清楚如何在Windows 10计算机上进行一些软件测试,而且我不确定Docker或其他技术是否可以实现我想做的事情。如果有人对是否有可能提出任何建议,以及我需要做什么技术那将是非常好的,如果我知道我走右边就更乐意去调查方向。

基本上我想构建一个容器,它使用我的主要Windows 10安装作为基础,但随后有隔离的容器:

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

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

谢谢,

PH

1 个答案:

答案 0 :(得分:2)

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

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

  • 发布端口,以便将对主机的网络请求路由到容器,例如当您浏览到http://localhost:8080时,您实际上可以从已发布端口8080的容器中获得响应;
  • 使用卷将主机文件系统的一部分安装在容器中,这样您的容器就可以读取和写入它认为是本地目录的内容,但这实际上是主机上的挂载目录,因此它就像网络共享一样。 / LI>

Docker镜像是快照 - 当您从图像中运行容器时,它将保留图像的状态。您可以更改容器中的内容但不会更改图像。杀死该容器并从同一图像中启动一个新容器,它将具有原始状态。

我们在Windows上使用Docker处于早期阶段,但Windows 10 quick start on MSDN会让您入门,或者您可以查看我的博客running IIS in Docker on a Windows Server 2016 VM