Windows 2016:Docker容器錯誤

我在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.(微軟網路團隊專案經理)

翻譯自:https://stackoverflow.com/questions/41565459/windows-2016-docker-container-error