今までOSXで使っていたDocker 1.11 (Doker Toolbox)を、
Docker 1.12 (Docker for Mac)に切り替えたので方法を残しておこうと思います。
実施手順
私が行ったことは以下の通りです。
- Docker公式からDocker for Macのインストール用dmgをDLしてDocker.appをインストール
- Docker.appを起動すると、Toolboxの既存のDocker Hostからコンテナやイメージを移行するかを聞かれるので、移行する方を選択する
- 以下のスクリプトでToolboxを削除
https://github.com/docker/toolbox/blob/master/osx/uninstall.sh
注意 Docker Machineを使っていて残したいものがある場合は "No"を選択すること -
/usr/local/bin/
内の docker関連コマンドが消えてしまったので、 Docker.appを再起動したら復活 - Toolboxでのdocker関連コマンドが
/usr/local/bin/docker.backup
という感じにリネームされて残っていたので削除 -
~/.docker
を削除
Docker for Macは、既存のDocker ToolboxのDockerイメージなどを移行してくれるので、気兼ねなくインストールすることができます。
上記の手順で、Step.2 の時点でDocker for MacとToolboxを共存させた状態になり、併用したいのであればこのまま利用してよいようです。
これ以降でのdockerの利用は、今までやっていた eval $(docker-machine env)
が不要になり、Dockerコンテナへのアクセスがlocalhost
に変わります。
残りの Step.3 以降は Docker Toolbox を削除するための手順です。
uninstall.shは、Docker公式のスクリプトのようです。
このファイルを手元にDLして実行すると関連ファイルが削除されます。
中身は簡単なので実行前に見ておくといいと思います。
ただ、このスクリプトで削除される /usr/local/bin/docker
コマンドなどは Docker for Mac と同じ場所だったようで、dockerコマンドなどが使えなくなってしまいました。
どうしようかと思ったものの、Docker.appを一度停止して再度起動したらコマンドが復活しました。
実際には、 /usr/local/bin/docker
はシンボリックリンクになっていて、起動時に存在しなかったら再作成してくれるようです。
最後に、Docker.app はどうやら既存のdockerコマンドなどを、docker.backup という名前でリネームして残しておくようになっていたようなので、手動でこれらのファイルを削除しました。
また、~/.docker
フォルダも残っていたので、これを消して完全に綺麗になったと思います。
まとめ
この手順は、あくまで私が試行錯誤をやってみた手順なので、ちゃんと整理すれば簡単になると思います。
実際には試していませんが、おそらく以下が一番シンプルな流れだろうと思います。
- uninstall.sh を実行
このとき、最初に "Remove all Docker Machine VMs?" と言われるので、"No"を選択
注意 ここで、Docker Machineを削除すると、あとで移行ができなくなると思います - Docker for Macをインストールし、既存イメージなどを移行
-
docker-machine rm -f default
でDocker Machineの環境を削除 -
default
環境だけを使っていたのであれば~/.docker
を削除
もし、他にも環境を使っている場合は残しておく必要があると思います