在Windows docker容器中运行ServiceBus

Vol*_*tan 6 powershell servicebus docker

主要目标是在Windows的docker容器中运行ServiceBus.

docker版本的输出:

Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 08:47:51 2017
 OS/Arch:      windows/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.24)
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 08:47:51 2017
 OS/Arch:      windows/amd64
 Experimental: true
Run Code Online (Sandbox Code Playgroud)

Dockerfile内容:

# Is used as sql server local storage for servicebus
FROM microsoft/mssql-server-windows-express

COPY install/ /install

# WebPlatform Installer http://download.microsoft.com/download/C/F/F/CFF3A0B8-99D4-41A2-AE1A-496C08BEB904/WebPlatformInstaller_amd64_en-US.msi 
RUN msiexec /i install\WebPlatformInstaller_amd64_en-US.msi /qn

# Install servicebus using webpicmd offline installation https://msdn.microsoft.com/en-us/library/dn441408.aspx#BMK_SBConfig1616
RUN WebpiCmd /Install /Products:ServiceBus_1_1 /AcceptEula /SuppressReboot /xml:c:\install\SBWebPICache\feeds\latest\webproductlist.xml
Run Code Online (Sandbox Code Playgroud)

重现步骤:

1.使用参数构建图像:

docker build --no-cache -t servicebus $folder

...
Verifying successful installation...    
Microsoft Visual C++ 2012 SP1 Redistributable Package (x64) True    
Microsoft Windows Fabric V1 RTM True    
Microsoft Windows Fabric V1 CU1 True    
Windows Azure Pack: Service Bus 1.1 True
Windows Azure Pack: Update for Service Bus 1.1 - .NET Framework 4.6 Compatibility (KB3086798) True
Install of Products: SUCCESS
Run Code Online (Sandbox Code Playgroud)

Servicebus按预期成功安装

2.使用参数运行容器:

docker run -it --rm --isolation hyperv servicebus powershell

3.创建新的servicebus服务器场:

New-SBFarm -SBFarmDBConnectionString 'data source=.; integrated security=true' -CertificateAutoGenerationKey (ConvertTo-SecureString -string "P@assword" -force -AsPlainText)

失败,错误:

New-SBFarm : The Server service is not started.
Run Code Online (Sandbox Code Playgroud)

手动启动服务:

Start-Service : Service 'Server (LanmanServer)' cannot be started due to the following error: Cannot start service LanmanServer on computer '.'
Run Code Online (Sandbox Code Playgroud)

发现该服务依赖于使用hyper-v隔离在Windows 10(10.0.14393)上无法启动的'srvnet':

Start-Service : Failed to start service 'srvnet (srvnet)'.
Run Code Online (Sandbox Code Playgroud)

但是使用进程隔离在Windows Server 2016(10.0.14393)上成功启动.但是,即使安装了srvnet服务并安装了文件服务,它仍然无法正常工作.无法启动服务器lanmanserver服务

问题: 是否有可能使lanmanserver在windows容器内工作?或者其他任何创建servicebus服务器的方法?