LoginSignup
4
3

More than 3 years have passed since last update.

dockerの起動失敗に対する対処【docker for windows】

Last updated at Posted at 2019-09-17

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マネージャー > 仮想スイッチマネージャーから
新しい仮想スイッチ → 内部 を選んで作成
キャプチャ.PNG

えぇ...
これじゃエラーが起きたことしかわからないのでコマンドから試す。

powershellコマンドで作る

Dockerのインストールフォルダ以下
Docker > Docker > resources > MobyLinux.ps1
内部に仮想マシンと仮想スイッチを作っている記述がある。

ps読めないが、多分
VMSwitchとVMAdapterがちゃんとあれば既存のものを使い、無ければ作っている
何で失敗しているんだろう?

MobyLinux.ps1
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

復活!!

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3