2018年4月25日水曜日

DockerToolbox + Windows 10 (VirtualBox) で Windows シャットダウンがブロックされるのを防ぐ

Windows 10 + Docker Toobox (VirtualBox) 環境を構築。
スタートアップからホスト起動するようにして、個人的に使ってるサービスを立ててるのですが、シャットダウンするときに VirtualBox Interface が "Has active connections." となって終了を阻害してたので、それを解決したときのメモ。

VBoxHeadlessTray をインストールして常駐させておく
参考:
Windows 7 終了時にdockerを自動終了させる。 - イノベートな非日常
VBoxHeadlessTray - Topten Software

2つ目のリンクから VBoxHeadlessTray をダウンロードして、インストール。
VBoxHeadlessTray が常駐するようになります。
これだけで解決!
簡単でした。
(インストール直後はダメでしたが、再起動後からは終了が阻害されることがなくなった)

また、VBoxHeadlessTray により起動時に VM が PowerUp されるようになったので、スタートアップで Docker を起動する必要もなくなりました。
Windows Update とかもあって、この辺あやふやです。すみません。
Tray が自動で PowerUp してくれてる感じがありますが、それだけだとシャットダウンがブロックされました。(VM が headless で起動してない?)
Docker Toolbox の Quick Start をスタートアップに入れてるとエラーが出るのですが、Tray からの起動で正常に立ち上がるっぽい。(タイミングが衝突?)
スタートアップ直後じゃなくて、数秒待ってみると大丈夫そうだったので、しばらくこれで・・・

他にやったこと
常駐させておくよりも設定でなんとかできたらと思っていたので、こちらを先に試していました。
VirtualBoxでホストのシャットダウンにゲストのバーチャルマシンも連動させる パソコン鳥のブログ/ウェブリブログ

VBoxManage で設定をしてあげれば良さそうだったので、マニュアル見ながら試してみたものの結果としてはうまくいきませんでした。
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata default GUI/DefaultCloseAction savestate
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata global GUI/DefaultCloseAction savestate
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata default VBoxInternal2/Watchdog/APIMonitor/IsolationResponse shutdown

サービス化する
これを書いてて思ったのだが、サービス化するってのはどうだろうか?
VirtualBox をサービス化する情報はすぐに見つかったので、今度試してみたいと思います。


あとがき
この記事を書いて少し寝かせていたのですが、その間にたまーに Docker Host の起動状態がおかしくなって、Virtual Box Manager からシャットダウンして起動し直すということがありました。また、たまにシャットダウンがブロックされる症状が出ていたので、根本的な解決とはなってない感じ。。。
(この記事が公開されているということは、ネタ不足になったということだ。)


0 件のコメント:

コメントを投稿