天天看点

WinDocks发布Windows版本的Docker引擎

windocks发布了一个windows版本的docker引擎,它可以运行在作为底层宿主的windows server 2012或windows server 2012 r2系统上。它可以运行ms sql server的多个版本,并支持.net 2、3.5和4.5。

windocks是一个移植到windows的docker引擎,它与近日发布的docker on windows并不相同。官方docker客户端可以同windocks一起使用,后者仅支持docker命令的一个子集,包括build、create、commit、exec、ps、start和stop。

windocks利用了一个由uhuru软件构建的开源容器项目以及他们自己对docker引擎的移植。

windows 2012的内核没有为容器所需的隔离要求提供原生支持。windocks使用了windows job objects作为容器的底层技术,后者可以将进程作为一个单元进行管理。

job object可以用于控制一组进程的资源使用率,如进程优先级和cpu使用率。这些控制包括针对文件权限、文件系统的自由访问控制列表(dacl)、针对命名空间隔离的注册表过滤和管理网络操作的windows过滤平台。windows过滤平台提供了网络数据包处理和过滤功能。

linux容器的隔离,包括docker提供的隔离,是通过控制组(cgroups)实现的。由于windows 2012缺少类似的机制,需要将多种功能拼凑在一起才能在windocks中实现这项功能。infoq联系了windocks,以了解更多与由此而生的安全问题相关的信息。windocks创始人ramesh parameswaran答复说:

在每个租户都是不同组织的场景中,我们不建议使用windocks。它不是一种100%进程隔离的方案,但也在很大程度上实现了隔离。windocks中的容器进程有内存和cpu使用限制,所以单个进程不会导致机器故障。

目前,windocks容器仅限于.net和ms sql server镜像。这些镜像既可以是打包了产品的基本的sql server镜像,也可以是由基本镜像派生而来的自定义sql镜像。为了创建一个自定义sql镜像,用户可以从基本镜像启动一个容器,添加一个mdf文件,并将容器提交给一个新镜像,接下来,用户就可以使用这个新镜像启动自定义容器了。在ms sql中,基础数据文件在创建时通常使用mdf扩展名。

此外,也可以通过网络挂载使用远程sql server数据库。据parameswaran介绍,windocks接下来的重点是改进日志功能,提供jenkins集成,以便纳入持续集成/持续交付(ci/cd)管道。

本文转自d1net(转载)