Docker Toolbox 18.06.1-ce から 19.03.1 にアップデートしたときに docker-machine start
で Docker ホストOS (CoreOS) が起動しなくなったときに行った作業メモ。
検証環境
Windows10 Home Edition VirtualBox 6.1.10 # Docker Host OS (CoreOS) $ uname -a Linux default 4.9.93-boot2docker #1 SMP Thu Jul 19 18:29:50 UTC 2018 x86_64 GNU/Linux # Docker Toolbox 18.06.1-ce Docker version 18.06.1-ce, build e68fc7a docker-machine version 0.15.0, build b48dc28d
発生した問題について
Docker Toolbox 18.06.1-ce の環境から 19.03.1 にアップデート後、 docker-machine upgrade
を実行してから docker-machine start
したときに以下のエラーが発生してホスト OS の VM が起動しなかった。
$ docker-machine start default Starting "default"... (default) Check network to re-create if needed... (default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar. (default) Waiting for an IP... Maximum number of retries (5) exceeded $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Running Unknown ssh command error: command : ip addr show err : exit status 127 output : bash: ip: command not found
解決方法について
GitHub の docker/toolbox の Issue で自分と同じ問題が出た人がいて、その方は VM を作り直すことで解決した模様。
Docker Toolbox 18.06.1-ce の docker-machine
は 0.15.0 だが、 18.09.0 以降は 0.16.0 に変更されたことが原因と考えられる。
Docker Toolbox 19.03.1 の docker-machine
で VM を作り直して解決するか検証する。
検証作業
イメージ、コンテナのバックアップ
現在使用している VM は削除するため、新しい環境でも使用したいイメージやコンテナはあらかじめバックアップしておく。
# 以下のコマンドは Windows 側で実行する # Windows の docker コマンドを VM に接続 $ eval $(docker-machine env --shell sh default) # イメージのエクスポート例 $ docker save centos:8 > centos-8.image.tar # コンテナのエクスポート例 $ docker export busybox_1 > busybox_1.container.tar
現在の VM の削除
$ docker-machine stop default $ docker-machine rm default
Docker Toolbox 19.03.1 のインストール
下記のサイトから DockerToolbox-19.03.1.exe
をダウンロード、インストールする。
インストール後、docker
および docker-machine
のバージョンを確認。
$ docker -v Docker version 19.03.1, build 74b1e89e8a $ docker-machine -v docker-machine.exe version 0.16.1, build cce350d7
VM の作成
docker-machine create
で VM を作成する。
$ docker-machine create --driver virtualbox --virtualbox-memory 2048 --virtualbox-disk-size 40000 default
VM の確認
$ docker-macine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Running tcp://192.168.99.101:2376 v19.03.5
docker-machine ssh
でログイン
$ docker-machine ssh default ( '>') /) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY. (/-_--_-\) www.tinycorelinux.net docker@default:~$ docker -v Docker version 19.03.5, build 633a0ea838
イメージ、コンテナのインポート
新しく作成した VM にイメージ、コンテナをインポートする。
# 以下のコマンドは Windows 側で実行する # Windows の docker コマンドを VM に接続 $ eval $(docker-machine env --shell sh default) # イメージのインポート例 $ docker load < centos-8.image.tar # コンテナのインポート例 $ cat busybox_1.container.tar | docker import - busybox_1:latest
まとめ
docker-machine upgrade
した後、VM が起動しなくなった場合はdocker-machine
のバージョン違いを確認するdocker-machine
のバージョンが変わっていたらdocker-machine create
で VM を作り直す