如何创建Dockerfile以在Windows 2016容器中运行Docker?

时间:2018-05-18 17:10:58

标签: .net windows azure docker dockerfile

后台:请求是使用Windows 2016 docker容器来构建和部署.net应用程序。容器将需要安装各种构建工具(MSbuild ...等)以及docker,因为.net应用程序将作为容器推送到Azure容器注册表。

方法:我的方法是创建一个dockerfile,其中包含各种构建工具和docker服务 - 设置为在运行容器时自动启动。

以下是dockerfile的示例:

FROM microsoft/windowsservercore
MAINTAINER joe.user@nowhere.com

CMD powershell Start-Service Docker

SHELL ["powershell"]
RUN Invoke-WebRequest 
"https://download.microsoft.com/download/9/B/B/9BB1309E-1A8F-4A47-A6C5-ECF76672A3B3/BuildTools_Full.exe" -OutFile "$env:TEMP\net.exe" -UseBasicParsing
RUN &  "$env:TEMP\net.exe" /Silent /Full

# Note: Add NuGet
RUN Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Force

RUN Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
RUN Install-Package -Name docker -ProviderName DockerMsftProvider -Force
RUN Set-Service -Name Docker -StartupType Automatic
#RUN Get-Service Docker
#RUN Restart-Computer -Force

问题:重新启动以运行docker服务我无法启动构建docker文件的服务。

引用:我使用以下网址作为对应在dockerfile中运行的命令的参考。

问题:如何使用dockerfile启动docker服务?从我的测试来看,这似乎无法实现。有没有人在Windows 2016服务器上成功启动了docker服务?任何有关如何进行的建议或示例都必须表示赞赏。

提前感谢您的协助。

1 个答案:

答案 0 :(得分:0)

你所指的是Docker-in-Docker。目前Windows不支持它(对Linux来说通常是一个坏主意)

https://github.com/docker-library/docker/issues/49(我从MS端找不到任何东西,但我猜这个码头人知道他们在谈论什么)