ナチュラル @rch850

ナチュラル丼発祥の地、福井からお届けします。技術的な話題とか、雑談とか。

Docker 1.10.2 (Windows) インストール備忘録


2016/04/22 追記

以下の対処をしたら動くようになってました。

  • パスが通る場所に置いてあった ssh.cmd を削除
  • VirtualBox を新しくした (5.0.18)

Windows で docker 1.6.2 から 1.10.2 に上げるときにだいぶハマったのでメモ。

1.10.2 のインストーラで入った Docker Quickstart Terminal を起動してみたらこのように表示されて起動できなかった。

(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to create a network adapter. Some
times, such confirmation window is minimized in the taskbar.
(default) Found a new host-only adapter: "VirtualBox Host-Only Ethernet Adapter"

(default) Windows might ask for the permission to configure a network adapter. S
ometimes, such confirmation window is minimized in the taskbar.
(default) Windows might ask for the permission to configure a dhcp server. Somet
imes, such confirmation window is minimized in the taskbar.
Error creating machine: Error in driver during machine creation: Unable to start
 the VM: exit status 1
Looks like something went wrong... Press any key to continue...

表示されたエラーメッセージで検索すると、いくつかの issue が引っかかった。

default VM を消せとかホストオンリーネットワークを消せとかアドバイスが書いてあるけど、何をしても改善されない。

試しに VirtualBox から直接 VM default を起動してみたらやはりエラーが出て、STATUS_OBJECT_NAME_NOT_FOUND などと書かれていた。

これも同じくエラーメッセージで検索してみたところ、VirtualBox のフォーラムの投稿がヒットした。

sc query vboxdrv を打てば詳細が分かるってことなので、管理者権限で開いたコマンドプロンプトで試しに打ってみたところ、こうなった。

PROMPT> sc query vboxdrv

SERVICE_NAME: vboxdrv
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 2  (0x2)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

PROMPT> sc start vboxdrv
[SC] StartService FAILED 2:

指定されたファイルが見つかりません。

どうもサービスが動いてなくて、起動しようとしても失敗するっぽい。さっきの投稿を読み進めると、STOPPED になっている場合の対処方法が書いてあって、VBoxDrv.inf を使ってドライバをインストールしろとのこと。インストールして再度サービスを立ち上げてみたところ、

PROMPT>sc start vboxdrv

SERVICE_NAME: vboxdrv
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 0
        FLAGS              :

となって無事起動できた。

これで一旦クリアな状態にして試せば大丈夫か?と思って、default VM やホストオンリーネットワークを削除し、再度 Docker Quickstart Terminal を起動してみたら、Waiting for an IP... でしばらく返ってこなくて、下記のエラーが出てしまった。

(default) Waiting for an IP...
Error creating machine: Error in driver during machine creation: Too many retrie
s waiting for SSH to be available.  Last error: Maximum number of retries (60) e
xceeded
Looks like something went wrong... Press any key to continue...

どうも default VM の IP が取れないっぽい。無理やりやればなんとか取れないこともないはず。

VirtualBox で default に入って ip addr してみたら、IP アドレスが 192.168.99.100 になっていることが分かった。もちろんこれは DHCP だから、この IP アドレスで固定ってわけではない。

ssh docker@192.168.99.100 -i ~/.docker/machine/machines/default/id_rsa したら default VM の中に入れて、なんとかそれっぽい操作ができるようになった。

あとは Docker Quickstart Terminal を起動するだけでつながるようになればいいんだけど、ここまで調べるのでだいぶ消耗したので一旦ここで一区切り。