abst
個人的な備忘録
もう何回見たか分からないエラー
Unable to create - ユーザー設定変数 "ErrorActionPreference" または共通パラメーターが Stop に設定されているため、実行中のコマンドが停止しました。Hyper-V で、"DockerNAT" という名前の仮想スイッチが見つかりませんでした。
状況確認
- docker Dsktopのupdateをインストールした直後によく発生する
- Windows管理ツール > Hyper-Vマネージャーで確認すると
- 仮想マシン: DockerDesktopVMがない
- 仮想スイッチマネージャー:DockerNATがない
対処1
再起動が2回必要だが、ほぼこれで解決する
プログラムと機能 > Windowsの機能の有効化または無効化
で表示されるディレクトリツリーの
Hyper-V > Hyper-V プラットフォーム > Hyper-Vサービス
のチェックを外して再起動、チェックをつけなおして再再起動
復活!
対処2
DockerNATを作成する。ないなら作ればいいじゃない。
GUIから作成(失敗した)
Windows管理ツール > Hyper-Vマネージャー > 仮想スイッチマネージャーから
新しい仮想スイッチ → 内部 を選んで作成
えぇ...
これじゃエラーが起きたことしかわからないのでコマンドから試す。
powershellコマンドで作る
Dockerのインストールフォルダ以下
Docker > Docker > resources > MobyLinux.ps1
内部に仮想マシンと仮想スイッチを作っている記述がある。
ps読めないが、多分
VMSwitchとVMAdapterがちゃんとあれば既存のものを使い、無ければ作っている
何で失敗しているんだろう?
Hyper-V\New-VMSwitch $Name -SwitchType Internal -ea SilentlyContinue | Out-Null
このあたりで作っていそうな雰囲気。
-ea
はErrorActionらしいので省いて実行
PS C:\Windows\system32> New-VMSwitch DockerNAT -SwitchType Internal
New-VMSwitch : 仮想イーサネット スイッチの作成中にエラーが発生しました。
発生場所 行:1 文字:1
+ New-VMSwitch DockerNAT -SwitchType Internal
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (:) [New-VMSwitch], VirtualizationException
+ FullyQualifiedErrorId : ObjectNotFound,Microsoft.HyperV.PowerShell.Commands.NewVMSwitch
New-VMSwitch
コマンドがない、らしい
...PC再起動して、コマンドを再度実行すると作れた。謎。
その後docker for windows を起動すると、成功した雰囲気
$ docker -v
Docker version 19.03.2, build 6a30dfc
復活!!