后台:请求是使用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服务?任何有关如何进行的建议或示例都必须表示赞赏。
提前感谢您的协助。
答案 0 :(得分:0)
你所指的是Docker-in-Docker。目前Windows不支持它(对Linux来说通常是一个坏主意)
https://github.com/docker-library/docker/issues/49(我从MS端找不到任何东西,但我猜这个码头人知道他们在谈论什么)