Docker Toolboxで詰まった話

タイトルが正確ではないような気もするけれど。

 

Docker toolsをインストールし、
Kitematicを立ち上げると、通常であればDocker Hubのログイン画面が開くのだが、
ログイン画面が出るべき画面に赤文字のエラーが表示された。

 

Could not determine IP from docker-machine.

 

いろいろコマンドやらを試して試行錯誤していると、
原因はわからないけど、DockerマシンにSSHできないように見えた。

 

結論を先に書くとWindowsのOpenSSHのバージョンが古かった
VagrantSSHする際には問題なかったので、あまり意識していなかった)。

 

*コンソールからコマンドを叩いてみる
>docker-machine regenerate-certs default
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
Too many retries waiting for SSH to be available. Last error: Maximum number of retries (60) exceeded


# 環境変数の確認(Windows)
>docker-machine env default --shell cmd
Error checking TLS connection: ssh command error:
command : ip addr show
err : exit status 1
output : command-line: line 0: Bad configuration option: ControlMaster

上記のコマンド叩いてみると、 Bad configuration option: ControlMaster と出ている。
OpenSSHが古くてControlPersist のオプションが無いらしい。

>ssh -V
OpenSSH_3.8.1p1, OpenSSL 0.9.7d 17 Mar 2004

古い。
以下のURLから最新のものを取得。
https://github.com/PowerShell/Win32-OpenSSH/releases
解答して、C直下においてパスを通した(雑なような気がする)。

>ssh -V
OpenSSH_7.5p1, LibreSSL 2.5.3

*2017/10.03地点

Kitematicを入れ直し、立ち上げるとDockerHubのページが立ち上がる。
また、docker-machine ssh default のコマンドでDocker環境に入れたら成功。


原因調べるのに一日分ほど時間かかった。
時間がかかった原因としては
Virtualboxのネットワーク周りが問題だとあてをつけてしまっていた。
・Dockerに慣れていないので、エラーを調査する方法が適切ではなかった。

また、Windows環境でのDockerは、いくつか問題があるらしく、あてをつけるのが難しかった。
同じような原因で引っかかる人がいるのかわからないけれども、忘備録として残しておく。

 

参考
sshの接続を高速化するconfig設定
https://rcmdnk.com/blog/2015/05/13/computer-remote/