Posted at

docker-machine --driver virtualbox "No IP address found" でマシンを作れないとき

More than 3 years have passed since last update.


disclaimer


  • すでにdocker/machineにもポストしてしまったネタですが、実際問題が解決している人もいるようなので、日本語でも見つかるようにマルチポストしておきます。


問題


  • docker-machineでvirtualbox providerを使って新しくホストを作成しようとしたときに以下のようなエラーが出て失敗する

INFO[0000] Creating SSH key...                          

INFO[0000] Creating VirtualBox VM...
INFO[0011] Starting VirtualBox VM...
INFO[0012] Waiting for VM to start...
ERRO[0065] Error creating machine: No IP address found 4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:26:c2:13 brd ff:ff:ff:ff:ff:ff
inet6 fe80::a00:27ff:fe26:c213/64 scope link
valid_lft forever preferred_lft forever

WARN[0065] You will want to check the provider to make sure the machine and associated resources were properly removed.
FATA[0065] Error creating machine


解決法

VBoxManage list -l hostonlyifs

でVirtualBoxのホストインターフェイスの設定を調べる(vboxnet1).

IPAddressのところに注目する。

Name:            vboxnet1

GUID: 786f6276-656e-4174-8000-0a0027000001
DHCP: Disabled
IPAddress: 192.168.99.1
NetworkMask: 255.255.255.0
IPV6Address:
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:01
MediumType: Ethernet
Status: Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet1

192.168.99.*などとなっていると要注意。これがどうもdocker-machineがeth1に与えたいIP address rangeとかぶっているらしい。この場合、例えば以下のようにアドレスを変更する。

Name:            vboxnet1

GUID: 786f6276-656e-4174-8000-0a0027000001
DHCP: Disabled
IPAddress: 192.168.59.103
NetworkMask: 255.255.255.0
IPV6Address:
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:01
MediumType: Ethernet
Status: Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet1

その後、docker-machine rm => createでマシンを再作成すれば問題が起きなくなった。