LoginSignup
8
6

More than 5 years have passed since last update.

Docker Machineで Error creating machine: Error in driver during machine creation: Maximum number of retries (5) exceeded で詰まった時の対応

Posted at

これなんだ

MacでDocker Machineはじめた際に詰まったエラーの解決策の一つです。
エラー内容: Error creating machine: Error in driver during machine creation: Maximum number of retries (5) exceeded

環境

MacBook Pro (Retina, 13-inch, Mid 2014)
VirtualBox 5.0.8r103449

とりあえずドキュメント通りにやる

チュートリアル通りDocker ToolboxのMac版を入れる
https://www.docker.com/docker-toolbox

マシン作ってみるがSSHで接続できないとエラーが出る

$ docker-machine -D create --driver virtualbox dev

|
| (略)
|

(dev) DBG | Getting to WaitForSSH function...
(dev) DBG | Using SSH client type: external
(dev) DBG | About to run SSH command:
(dev) DBG | exit 0
(dev) DBG | SSH cmd err, output: exit status 255:
(dev) DBG | Error getting ssh command 'exit 0' : Something went wrong running an SSH command!
(dev) DBG | command : exit 0
(dev) DBG | err     : exit status 255
(dev) DBG | output  :

|
| (略)
|

Error creating machine: Error in driver during machine creation: Maximum number of retries (5) exceeded

Docker Quickstart Terminal.appを起動してみる

そもそもDocker Quickstart Terminal.appでも起動しないことがわかった
起動しないというかSSHに繋げないだけでマシンが立っている

調査

SSHでどう繋いでるか確認

$ docker-machine -D ssh dev
|
| (略)
|
&{/usr/bin/ssh [/usr/bin/ssh -o PasswordAuthentication=no -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=no docker@127.0.0.1 -i ~/.docker/machine/machines/dev/id_rsa -p 22]
|
| (略)
|
exit status 255

繋がらないので普通にSSHコマンド叩いてみる

$ /usr/bin/ssh -o PasswordAuthentication=no -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=no docker@127.0.0.1 -i ~/.docker/machine/machines/dev/id_rsa -p 22

createした時のログを見直した

(dev) DBG | Forwarding(0)="ssh,tcp,127.0.0.1,62910,,22"

22じゃなくて62910?

指定されてるPORTでSSHしてみる

$ /usr/bin/ssh -o PasswordAuthentication=no -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=no docker@127.0.0.1 -i ~/.docker/machine/machines/dev/id_rsa -p 62910
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.9.0, build master : 16e4a2a - Tue Nov  3 19:49:22 UTC 2015
Docker version 1.9.0, build 76d6bc9
docker@boot2docker:~$

繋がった

接続情報の確認

$ docker-machine inspect dev
|
| (略)
|
  "SSHPort": 0,
|
| (略)
|

それはおかしいので62910変更してみる

$ vim ~/.docker/machine/machines/dev/config.json

再度確認

docker-machine inspect dev
|
| (略)
|
  "SSHPort": 0,
|
| (略)
|

反映されない

VirtualBox ?

VirtualBoxなのかなぁと再インストールしたりしてもダメだった。

解決方法

ネットワーク周りだと当たりつけてvboxnetの削除(自分の場合は6まであった)

$ VBoxManage list hostonlyifs | grep -e '^Name'
Name:            vboxnet0
Name:            vboxnet1
Name:            vboxnet2
Name:            vboxnet3
Name:            vboxnet4
Name:            vboxnet5
Name:            vboxnet6
$ VBoxManage hostonlyif remove vboxnet0
$ VBoxManage hostonlyif remove vboxnet1
$ VBoxManage hostonlyif remove vboxnet2
$ VBoxManage hostonlyif remove vboxnet3
$ VBoxManage hostonlyif remove vboxnet4
$ VBoxManage hostonlyif remove vboxnet5
$ VBoxManage hostonlyif remove vboxnet6

再度挑戦

$ docker-machine create --driver virtualbox dev
Running pre-create checks...
Creating machine...
Waiting for machine to be running, this may take a few minutes...
Machine is running, waiting for SSH to be available...
Detecting operating system of created instance...
Provisioning created instance...
^[^[Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
To see how to connect Docker to this machine, run: docker-machine env dev

$ docker-machine ssh dev
                       ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.9.0, build master : 16e4a2a - Tue Nov  3 19:49:22 UTC 2015
Docker version 1.9.0, build 76d6bc9
docker@dev:~$

無事繋がりました。

そもそもvboxnetの何がいけなかったか

その辺りはしっかり調査はできてません。
ただ、以前からVagrantを結構使っていたため過去に作ったVagrantのIPとDocker Machineとバッティングしたのがきっかけな気がします。
詳しくはこの辺りを。
https://github.com/docker/machine/issues/1031

まとめ

正確にはわかってないのですが、多分vboxnetを調整すれば解決する気がしてます。

8
6
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
8
6