我在Windows服务器2016上使用docker,我使用“microsoft / windowsservercore:latest”图像创建了一个容器.
在这个图像上我已经安装了“打印服务器”角色,但是当我尝试调用“Get-Printer”cmdlet时,我在假脱机程序服务中获得了一个错误.
这些是用于重新创建问题的命令:
docker run -d --name testspoolererror1 microsoft/windowsservercore:latest ping -t localhost
docker exec -it testspoolererror1 powershell
Install-WindowsFeature Print-Server
Set-Service spooler -StartupType Automatic
Start-Service spooler
Get-Service spooler
Get-Printer
这是我收到错误时:
Get-Printer : The spooler service is not reachable. Ensure the spooler service is running.
At line:1 char:1
+ Get-Printer
+ ~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (MSFT_Printer:ROOT/StandardCimv2/MSFT_Printer) [Get-Printer],CimException
+ FullyQualifiedErrorId : HRESULT 0x800706ba,Get-Printer
In the event viewer i found the error:
The Print Spooler service terminated unexpectedly. It has done this 2 time(s).
任何人都可以帮我解决这个问题吗?
为了彻底,我通过运行以下命令自己尝试:
docker run -it microsoft/windowsservercore:latest powershell
(现在从容器内运行powershell)
Install-WindowsFeature Print-Server
Set-Service spooler -StartupType Automatic
Start-Service spooler
Get-Service spooler
Get-Printer
我能够在我的系统上运行这些,没有错误.所以这是一个开始.
现在,从您的错误看起来,假脱机程序服务甚至没有启动.你在运行Get-Service假脱机程序时看到了什么?您是否会尝试在您的系统上运行这些命令,就像我在上面列出的那样,然后报告您的结果?
另外,澄清一下,当你从容器中ping localhost时,你想要做什么?您是否想要ping容器主机?
作为旁注,如果您正在寻找有关容器网络如何在Windows上运行的背景信息,这里是一个很好的起点:https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/container-networking
–Kallie B.(微软网络团队项目经理)