web-dev-qa-db-ja.com

Hyper-VでMobyLinuxVMを手動で削除した後、Windows 10のDockerが起動できない

最初、Dockerは公式バージョンのWindows 10で正常に動作します。

その後、何らかの理由でHyper-VのMobyLinuxVMを削除しました。その後、ドッカーは機能しません。

次に、Hyper-Vの機能をオフにして、Dockerをアンインストールします(もちろんコンピューターは再起動されました)。

次に、Dockerを再インストールし、Hyper-Vの機能を再度オンにします。しかし、Dockerはまだ機能しません。

私はグーグルでいくつかの解決策を試しましたが、問題はまだ残っています。
Dockerの起動時にMobyLinuxVMのステータスを確認しましたが、MobyLinuxVMが作成されていないことがわかりました。

誰かが解決方法を知っていますか?

スクリーンショットとログは次のとおりです。

https://i.stack.imgur.com/8GbLw.png

[Version: 1.13.1 (10072)
Channel: Stable
Sha1: 94675c5a765e2c51fba6c10b87e0a1a4ed3dde51
Started on: 2017/02/23 09:35:27.478
Resources: C:\Program Files\Docker\Docker\Resources
OS: Windows 10 Pro
Edition: Professional
Id: 1511
Build: 10586
BuildLabName: 10586.672.AMD64fre.th2_release_sec.161024-1825
File: C:\Users\212599222\AppData\Local\Docker\log.txt
CommandLine: "C:\Program Files\Docker\Docker\Docker for Windows.exe" 
You can send feedback, including this log file, at https://github.com/docker/for-win/issues
\[09:35:27.603\]\[GUI            \]\[Info   \] Starting...
\[09:35:28.290\]\[Tracking       \]\[Info   \] Crash report and usage statistics are enabled
\[09:35:28.306\]\[SegmentApi     \]\[Info   \] Usage statistic: appLaunched
\[09:35:28.625\]\[SegmentApi     \]\[Error  \] Failed to track event appLaunched: An error occurred while sending the request.
\[09:35:28.625\]\[NamedPipeClient\]\[Info   \] Sending Version()...
\[09:35:28.641\]\[NamedPipeClient\]\[Info   \] Received response for Version
\[09:35:28.641\]\[SegmentApi     \]\[Info   \] Usage statistic: heartbeat
\[09:35:28.641\]\[SegmentApi     \]\[Error  \] Failed to track event heartbeat: An error occurred while sending the request.
\[09:34:34.255\]\[BackendServer  \]\[Info   \] Started
\[09:35:28.641\]\[NamedPipeServer\]\[Info   \] Version()
\[09:35:28.641\]\[NamedPipeServer\]\[Info   \] Version done in 00:00:00.
\[09:35:28.841\]\[Updater        \]\[Info   \] Checking for updates on channel Stable...
\[09:35:28.841\]\[NamedPipeClient\]\[Info   \] Sending Start(Docker.Core.Settings)...
\[09:35:28.858\]\[NamedPipeServer\]\[Info   \] Start(Docker.Core.Settings)
\[09:35:28.863\]\[UpdateFeedDownloader\]\[Error  \] The remote name could not be resolved: 'download.docker.com'
\[09:35:28.863\]\[Updater        \]\[Info   \] No update available
\[09:35:28.862\]\[PowerMode      \]\[Info   \] Stop
\[09:35:28.863\]\[HyperV         \]\[Info   \] Stop
\[09:35:28.863\]\[PowerShell     \]\[Info   \] Run script with parameters: -Stop True...
\[09:35:28.863\]\[PowerShell     \]\[Info   \] Creating a Runspace Pool...
\[09:35:29.909\]\[PowerShell     \]\[Info   \] Runspace Pool created (Min=1, Max=2)
\[09:35:29.969\]\[HyperV         \]\[Info   \] Script started at 09:35:29.964
\[09:35:33.783\]\[HyperV         \]\[Info   \] Module loaded at 09:35:33.783
\[09:35:33.983\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:35:33.983\]\[HyperV         \]\[Debug  \] \[stop\] took 00:00:05.1195593 to run
\[09:35:33.983\]\[OptimizeDisk   \]\[Info   \] Optimize
\[09:35:33.983\]\[PowerShell     \]\[Info   \] Run script...
\[09:35:33.999\]\[Moby           \]\[Info   \] Stop
\[09:35:34.014\]\[HyperVGuids    \]\[Info   \] Installing GUIDs...
\[09:35:34.014\]\[PowerMode      \]\[Info   \] Start
\[09:35:34.014\]\[HyperV         \]\[Info   \] Create
\[09:35:34.014\]\[PowerShell     \]\[Info   \] Run script with parameters: -Create True -VhdPathOverride  -SwitchSubnetAddress 10.0.75.0 -SwitchSubnetMaskSize 24 -CPUs 2 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso...
\[09:35:34.014\]\[HyperVGuids    \]\[Info   \] GUIDs installed
\[09:35:34.033\]\[HyperV         \]\[Info   \] Script started at 09:35:34.033
\[09:35:34.036\]\[Firewall       \]\[Info   \] Removing all existing rules...
\[09:35:34.115\]\[HyperV         \]\[Info   \] Module loaded at 09:35:34.115
\[09:35:34.315\]\[HyperV         \]\[Info   \] Enabled workaround for Build 10586 VMSwitch issue
\[09:35:34.518\]\[Firewall       \]\[Info   \] All existing rules are removed.
\[09:35:34.518\]\[Firewall       \]\[Info   \] Opening ports for C:\Program Files\Docker\Docker\Resources\com.docker.proxy.exe...
\[09:35:35.451\]\[Firewall       \]\[Info   \] Opening ports for SMB...
\[09:35:36.358\]\[Firewall       \]\[Info   \] Ports are opened
\[09:36:31.192\]\[HyperV         \]\[Info   \] Creating Switch: DockerNAT...
\[09:37:26.994\]\[HyperV         \]\[Info   \] Switch created.
\[09:37:28.917\]\[Linux          \]\[Error  \] Failed to start: Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists.

. Let's retry
\[09:37:28.917\]\[PowerShell     \]\[Info   \] Run script...
\[09:37:42.595\]\[HyperV         \]\[Info   \] Hyper-V is running
\[09:37:42.595\]\[PowerMode      \]\[Info   \] Stop
\[09:37:42.595\]\[HyperV         \]\[Info   \] Stop
\[09:37:42.596\]\[PowerShell     \]\[Info   \] Run script with parameters: -Stop True...
\[09:37:42.602\]\[HyperV         \]\[Info   \] Script started at 09:37:42.602
\[09:37:42.707\]\[HyperV         \]\[Info   \] Module loaded at 09:37:42.707
\[09:37:42.728\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:37:42.728\]\[HyperV         \]\[Debug  \] \[stop\] took 00:00:00.1332364 to run
\[09:37:42.728\]\[OptimizeDisk   \]\[Info   \] Optimize
\[09:37:42.728\]\[PowerShell     \]\[Info   \] Run script...
\[09:37:42.744\]\[Moby           \]\[Info   \] Stop
\[09:37:42.752\]\[HyperV         \]\[Info   \] Destroy
\[09:37:42.753\]\[PowerShell     \]\[Info   \] Run script with parameters: -Destroy True -KeepVolume True...
\[09:37:42.761\]\[HyperV         \]\[Info   \] Script started at 09:37:42.761
\[09:37:42.850\]\[HyperV         \]\[Info   \] Module loaded at 09:37:42.850
\[09:37:42.864\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:37:42.865\]\[HyperV         \]\[Info   \] Destroying Switch DockerNAT...
\[09:38:02.148\]\[HyperV         \]\[Info   \] Removing VM MobyLinuxVM...
\[09:38:02.163\]\[HyperV         \]\[Debug  \] \[destroy\] took 00:00:19.4109973 to run
\[09:38:02.163\]\[Firewall       \]\[Info   \] Closing ports...
\[09:38:02.163\]\[Firewall       \]\[Info   \] Removing all existing rules...
\[09:38:02.335\]\[Firewall       \]\[Info   \] Removing DockerProxy...
\[09:38:02.512\]\[Firewall       \]\[Info   \] Removed DockerProxy.
\[09:38:02.694\]\[Firewall       \]\[Info   \] Removing DockerSmbMount...
\[09:38:02.889\]\[Firewall       \]\[Info   \] Removed DockerSmbMount.
\[09:38:03.050\]\[Firewall       \]\[Info   \] All existing rules are removed.
\[09:38:03.050\]\[Firewall       \]\[Info   \] Ports are closed
\[09:38:03.051\]\[HyperVGuids    \]\[Info   \] Removing GUIDs...
\[09:38:03.056\]\[HyperVGuids    \]\[Info   \] GUIDs removed
\[09:38:03.057\]\[HyperV         \]\[Info   \] Create
\[09:38:03.057\]\[PowerShell     \]\[Info   \] Run script with parameters: -Create True -VhdPathOverride  -SwitchSubnetAddress 10.0.75.0 -SwitchSubnetMaskSize 24 -CPUs 2 -Memory 2048 -IsoFile C:\Program Files\Docker\Docker\Resources\mobylinux.iso...
\[09:38:03.063\]\[HyperV         \]\[Info   \] Script started at 09:38:03.063
\[09:38:03.122\]\[HyperV         \]\[Info   \] Module loaded at 09:38:03.122
\[09:38:03.178\]\[HyperV         \]\[Info   \] Enabled workaround for Build 10586 VMSwitch issue
\[09:38:13.824\]\[HyperV         \]\[Info   \] Creating Switch: DockerNAT...
\[09:38:28.719\]\[HyperV         \]\[Info   \] Switch created.
\[09:38:29.134\]\[PowerMode      \]\[Info   \] Stop
\[09:38:29.134\]\[HyperV         \]\[Info   \] Stop
\[09:38:29.135\]\[PowerShell     \]\[Info   \] Run script with parameters: -Stop True...
\[09:38:29.142\]\[HyperV         \]\[Info   \] Script started at 09:38:29.141
\[09:38:29.223\]\[HyperV         \]\[Info   \] Module loaded at 09:38:29.223
\[09:38:29.236\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:38:29.237\]\[HyperV         \]\[Debug  \] \[stop\] took 00:00:00.1021625 to run
\[09:38:29.237\]\[OptimizeDisk   \]\[Info   \] Optimize
\[09:38:29.237\]\[PowerShell     \]\[Info   \] Run script...
\[09:38:29.247\]\[Moby           \]\[Info   \] Stop
\[09:38:29.253\]\[HyperV         \]\[Info   \] Destroy
\[09:38:29.254\]\[PowerShell     \]\[Info   \] Run script with parameters: -Destroy True -KeepVolume True...
\[09:38:29.262\]\[HyperV         \]\[Info   \] Script started at 09:38:29.261
\[09:38:29.335\]\[HyperV         \]\[Info   \] Module loaded at 09:38:29.335
\[09:38:29.347\]\[HyperV         \]\[Info   \] VM MobyLinuxVM does not exist
\[09:38:29.348\]\[HyperV         \]\[Info   \] Destroying Switch DockerNAT...
\[09:38:38.264\]\[HyperV         \]\[Info   \] Removing VM MobyLinuxVM...
\[09:38:38.276\]\[HyperV         \]\[Debug  \] \[destroy\] took 00:00:09.0233008 to run
\[09:38:38.276\]\[Firewall       \]\[Info   \] Closing ports...
\[09:38:38.276\]\[Firewall       \]\[Info   \] Removing all existing rules...
\[09:38:38.488\]\[Firewall       \]\[Info   \] All existing rules are removed.
\[09:38:38.488\]\[Firewall       \]\[Info   \] Ports are closed
\[09:38:38.488\]\[HyperVGuids    \]\[Info   \] Removing GUIDs...
\[09:38:38.488\]\[HyperVGuids    \]\[Info   \] GUIDs removed
\[09:38:38.493\]\[NamedPipeServer\]\[Error  \] Unable to execute Start: Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists.

    at Docker.Backend.HyperV.RunScript(String action, Dictionary`2 parameters)
   at Docker.Backend.ContainerEngine.Linux.Start(Settings settings)
   at Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass8_0.<Register>b__0(Object\[\] parameters)
   at Docker.Core.Pipe.NamedPipeServer.RunAction(String action, Object\[\] parameters)
\[09:38:38.565\]\[NamedPipeClient\]\[Error  \] Unable to send Start: Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists.


\[09:38:38.567\]\[Notifications  \]\[Error  \] Unable to create: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The object already exists. 


\[09:39:59.534\]\[SegmentApi     \]\[Info   \] Usage statistic: actionMenuSettings
\[09:40:07.295\]\[ErrorReportWindow\]\[Info   \] Open logs][1]
14
Yun

問題が解決しました!! VonCが提供するメソッドを試しましたが、まだ動作しませんが、コマンドを実行しているときに.\MobyLinux.ps1 -Create、VNAT作成エラーのプロンプトが表示されます。次に、ネットワークアダプターリストを開くと、Hyper-Vによって作成された「切断されたアダプター」が多数あることがわかりました(この間、古いアダプターを認識しないたびに、何度か電源を切ったり入れたりしましたどのdocker can)。したがって、ドッカーが見つけたアダプターは、Hyper-Vが見つけたアダプターと一致せず、「オブジェクトは既に存在します」というプロンプトが表示され、新しいアダプターは作成されません。

最後に、デバイスマネージャーを開いて不要なアダプターを削除する必要があります。その後、Dockerが正常に起動しました。

最後に、VonCによる最初の回答に感謝します

8
Yun

次に、Dockerを再インストールし、Hyper-Vの機能を再度オンにします。

最初にHyper-Vの機能をオンにします(そして再起動します)

次に、 Windows用Dockerを再インストール
インストールする前に知っておくべきこと 」を参照してください。

Docker for Windowsの現在のバージョンは、64ビットWindows 10 Pro、Enterprise、およびEducationで実行されます(1511年11月の更新、ビルド10586以降)。

Docker for Windowsを機能させるには、Hyper-Vパッケージを有効にする必要があります。 Docker for Windowsインストーラーは、必要に応じて有効にします。

特定のエラーメッセージは docker/for-win issue 248 およびその前の issue 214

Unable to create: 
The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: 
The object already exists.

このコメントに記載 および ここ のように、保存したVMを再試行して削除します。

あなたはC:\Program Files\Docker\Docker\resourcesコマンドを実行します。
それで、実行できるコマンドのシーケンスを改良しましょう。

  • アプリケーションを終了します
  • Stop-Service com.docker.service
  • cd 'C:\Program Files\Docker\Docker\resources'
  • .\MobyLinux.ps1 -Destroy
  • vHDXファイル(C:\Users\Public\Public Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx)は削除されます
  • .\MobyLinux.ps1 -Create
11
VonC

HyperVユニットのパス上のスペースはサポートされません。
hyperV構成でスペースなしのパスを構成する必要があります。

0
Crystian

私も同様の問題に直面しました、私の場合、MobyLinuxを削除しようとしましたVM 。Dockerは実行中の仮想マシンを作成しようとしました(監視するためにdockerを起動するときにHyper-Vを開きます)が、vmは失敗して停止しました。

私はそれを修正しました:

  • Dockerのアンインストール

  • デフォルトのhyper-v仮想マシンフォルダーを変更しました HyperVsettingscreatedFolder

  • Dockerを再インストールします。

  • Dockerは新しいフォルダー内に新しいMobyLinuxファイルを作成し、everithingはOk now。

0
Héctor Tornos