背景
Dockerに初めて手を出してみようと、Docker for Windows のインストール を参考にインストール。手順に従って Docker Quickstart Terminal を起動するも下記エラーに遭遇して先に進まなくなったので調べた。
Looks like something went wrong in step ´Looking for vboxmanage.exe´... Press any key to continue...
VirtualBoxのパスが通っていない?
エラーメッセージからは、VBoxのコマンドが見つからない、と言われているように見える。なんか嘘くさいので、Docker Quickstart Terminal起動時に実行されているstart.sh
(C:\Program Files\Docker Toolbox\start.sh
)をデバッグする。
+ trap '[ "$?" -eq 0 ] || read -p "Looks like something went wrong in step ´$STEP´... Press any key to continue..."' EXIT
+ VM=default
+ DOCKER_MACHINE=./docker-machine.exe
+ STEP='Looking for vboxmanage.exe'
+ '[' '!' -z 'C:\Program Files\Oracle\VirtualBox\' ']'
+ VBOXMANAGE='C:\Program Files\Oracle\VirtualBox\VBoxManage.exe'
+ BLUE='\033[1;34m'
+ GREEN='\033[0;32m'
+ NC='\033[0m'
+ '[' '!' -f ./docker-machine.exe ']'
+ echo 'Docker Machine is not installed. Please re-run the Toolbox Installer and try again.'
Docker Machine is not installed. Please re-run the Toolbox Installer and try again.
+ exit 1
++ '[' 1 = 1 ']'
++ '[' -x /usr/bin/clear ']'
++ /usr/bin/clear
+ '[' 1 -eq 0 ']'
+ read -p 'Looks like something went wrong in step ´Looking for vboxmanage.exe´... Press any key to continue...'
Looks like something went wrong in step ´Looking for vboxmanage.exe´... Press any key to continue...
Docker Machine is not installed
というメッセージが出力されている。
原因はVBoxではなく、docker-machine.exe
が見つからないこと。
途中でメッセージがclearされて見えなくなっていただけなので、わざわざデバッグしなくてもエラー画面で上にスクロールすればメッセージは見えたっぽい。
原因
docker-machine.exe
のパスがstart.sh
最初の方で下記のように相対パスで指定されていることと、自分の環境(.bashrc
)が原因。
DOCKER_MACHINE=./docker-machine.exe
これはDocker Quickstart Terminalを実行したときのカレントディレクトリが、C:\Program Files\Docker Toolbox\
だという前提になっている。
自分の場合.bashrc
でディレクトリを移動しているので、sh実行時に上記exeが見つからず問題が起きていた。
対応方法
下記いずれかで対応。
1. .bashrc
でcd
しないようにする
2. start.sh
を書き換える 1
start.sh
の中で、期待されるディレクトリに移動させる(shの最初の方に下記を追記する)
cd /c/Program\ Files/Docker\ Toolbox
3. Docker Quickstart Terminalを使わない
Docker for Windows のインストール の手順を読んでいくとこのTerminalを利用する前提になっているが、似たような内容が書いてあるWindows のページの手順だと、他のShellから利用する方法も記載されている。
なんだgit-bashでよかったじゃん、っていう。
補足
-
環境によっては、
start.sh
を編集する権限がないと言われる場合があるので、「ファイルを右クリック→プロパティ→セキュリティ→編集」で権限をつける ↩