С тех пор, как я обновил Docker на своем компьютере до beta27, я не смог запустить контейнеры Windows, используя сеть по умолчанию. Я получаю следующее сообщение:
docker: Error response from daemon: container xxx encountered an error during Start failed in Win32: The system cannot find the path specified. (0x3): Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
Я удалил / удалил все (Docker для Windows, Hyper-V, функцию контейнеров и файлы, оставшиеся в C: \ ProgramData \ Docker), а затем переустановил все, но проблема не исчезла.
Я понял, что nat
адаптер больше не присутствовал в Hyper-V, но DockerNat
адаптер был.
Эта статья предоставляет сценарий для сброса сетевых компонентов, но я не могу удалить сеть контейнеров.
PS C:\WINDOWS\system32> Get-ContainerNetwork
Name Id Subnets Mode SourceMac DNSServers DNSSuffix
---- -- ------- ---- --------- ---------- ---------
nat 12706897-fc71-41fc-9046-a7be0d01727e {172.16.0.0/12} NAT
PS C:\WINDOWS\system32> Get-ContainerNetwork | Remove-ContainerNetwork
Confirm
Remove-ContainerNetwork will remove the container network "".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Remove-ContainerNetwork : Unspecified error
At line:1 char:24
+ Get-ContainerNetwork | Remove-ContainerNetwork
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Remove-ContainerNetwork], VirtualizationException
+ FullyQualifiedErrorId : OperationFailed,Microsoft.Containers.PowerShell.Cmdlets.RemoveContainerNetwork
PS C:\WINDOWS\system32> Remove-ContainerNetwork -Name nat
Confirm
Remove-ContainerNetwork will remove the container network "nat".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Remove-ContainerNetwork : Unspecified error
At line:1 char:1
+ Remove-ContainerNetwork -Name nat
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Remove-ContainerNetwork], VirtualizationException
+ FullyQualifiedErrorId : OperationFailed,Microsoft.Containers.PowerShell.Cmdlets.RemoveContainerNetwork
PS C:\WINDOWS\system32>
Есть ли запись в реестре, которую я могу удалить, чтобы удалить сеть, поскольку она не может удалить ее через PowerShell?
Попробуйте удалить сеть NAT, используя следующее:
Get-NetNat | Remove-NetNat
Вы также можете попробовать перезапустить HNS и докер
Restart-Service hns
Restart-Service docker