docker-machine create
で作成した VM (boot2docker) の IP アドレスを変更する手順メモ
検証環境
Windows10 Home Edition VirtualBox 6.1.10 # Docker Host OS (CoreOS) $ uname -a Linux default 4.14.154-boot2docker #1 SMP Thu Nov 14 19:19:08 UTC 2019 x86_64 GNU/Linux # Docker Toolbox 19.03.1 Docker version 19.03.1, build 74b1e89e8a docker-machine.exe version 0.16.1, build cce350d7
発生した問題について
Docker Toolbox 18.06.1-ce の環境から 19.03.1 にアップデート後、 docker-machine create
で VM を作り直したところ VM の IP アドレスが 192.168.99.101 になった。
(VM は 1 台しか動かしていない)
恐らく新しい VM を作るときに古い VM のホストオンリーネットワークアダプタが残っていたのが原因と考えられる。
$ docker-machine.exe ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Running tcp://192.168.99.101:2376 v19.03.5
特に実害はないが、以前の環境では 192.168.99.100 だったので可能ならば戻したい。
合わせて VM を複数作成したときに、各 VM の固定 IP 化も行いたい。
(VM の起動順で IP が変わるのを防ぐため)
解決方法
boot2docker
の起動スクリプト作成
VM の /var/lib/boot2docker/bootsync.sh
に下記内容でスクリプトを作成。
#!/bin/sh /etc/init.d/services/dhcp stop ifconfig eth1 192.168.99.100 netmask 255.255.255.0 broadcast 192.168.99.255 up
実行属性を付与
$ sudo chmod 755 /var/lib/boot2docker/bootsync.sh
VM の再起動と TLS 証明書の更新
$ docker-machine restart default $ docker-machine regenerate-certs default
動作確認
VM の IP アドレスが 192.168.99.100 に変更されたことを確認する。
$ docker-machine.exe ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Running tcp://192.168.99.100:2376 v19.03.5