takaya030の備忘録

PHP、Laravel、Docker などの話がメインです

docker-machin upgrade のときにローカルの boot2docker.iso を使う

docker-machine upgrade を実行することで GitHub から最新の boot2docker.iso がダウンロードされ Docker ホスト OS (CoreOS) が更新されるが、あらかじめダウンロード済みの boot2docker.iso を使う場合の手順メモ

検証環境

Windows10 Home Edition

VirtualBox 5.2.8

Docker version 18.02.0-ce, build fc4de447b5

docker-machine.exe version 0.13.0, build 9ba6da9

アップグレード前のホストOSの確認

$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
dev    -        virtualbox   Running   tcp://192.168.99.100:2376           v17.10.0-ce

boot2docker.iso のダウンロード

GitHub から任意のバージョンの iso をダウンロードする
(今回自分がダウンロードのは v17.12.1-ce)
Releases · boot2docker/boot2docker

ホストOSのアップグレード

  1. ダウンロードした boot2docker.isoC:\Users\<ユーザー名>\.docker\machine\cache フォルダにコピー
  2. docker-machine upgrade を実行
$ docker-machine upgrade dev
Starting machine so machine can be upgraded...
Starting "dev"...
(dev) Check network to re-create if needed...
(dev) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(dev) Waiting for an IP...
Machine "dev" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Waiting for SSH to be available...
Detecting the provisioner...
Upgrading docker...
Stopping machine to do the upgrade...
Upgrading machine "dev"...
Copying C:\Users\takaya030\.docker\machine\cache\boot2docker.iso to C:\Users\takaya030\.docker\machine\machines\dev\boot2docker.iso...
Starting machine back up...
(dev) Check network to re-create if needed...
(dev) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(dev) Waiting for an IP...
Restarting docker...

アップグレードの確認

$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
dev    *        virtualbox   Running   tcp://192.168.99.100:2376           v17.12.1-ce

備考

上記手順はアップグレード(バージョンアップ)のみで可能。ダウングレードする場合は docker-machine create で新たに VM を作成する必要がある

参考サイト

stackoverflow.com