docker-machineとそのメリット
docker-machine
は仮想マシン上にDocker Engine
をインストールするツールです。
docker-machineコマンドを使用することで、Dockerホストを作成・管理することが可能です。
docker-machineを使用してDockerホストを作成すると、
| |
でシェル評価可能なDocker接続情報を得ることができ、
| |
とすることにより、そのセッション内ではあたかもローカル環境のDockerの様にコンテナを操作することが可能となります。
docker-machineで使用するOS
扨、通常docker-machineでDockerホストを作成すると、インストールされるOSはBoot2Docker ですが、docker-machineでは、ホスト作成時のコマンドラインオプションでisoイメージやシェルスクリプトを指定することでOSやDocker Engineのバージョンを変更することができます。
RancherOS
Boot2Dockerに類似したOSとして、RancherOS
があり、rosコマンドを使用することでインストール後でもDockerのバージョンを簡単に切り替えることができます。
RancherOSは以前、仮想マシン環境のサポートとして、Vagrant 用の環境を提供していましたが、現在(2017年8月)では、すでにサポートが終了しており、docker-machineを使用するようにというアナウンスが出ています。
そこで、今回はdocker-machineを使用してRancherOSを立ちあげてみようと思います。
docker-machineでRancherOSを立ちあげる
公式ドキュメント
上に示されたコマンドをそのまま使用しても、途中でエラーが出てしまい(エラーが出ること自体は記述されていますが)、docker-machineをの大きなメリットである、docker-machine envが使用できません。
エラーを回避するためには、Rancherのリポジトリ上にあるインストールスクリプト を指定します。
| |
インストールが完了したら、docker-machine lsコマンドで実行中のDockerホストの一覧を表示することができます。
| |
Docker Engineのバージョンを切り替える
せっかくRancherOSを使用しているので、Docker Engineのバージョンを切り替えてみましょう。
Docker Engineのバージョンを切り替えるにはRancherOS上でrosコマンドを使用するのでした。
RancherOSはdocker-machineで作成されたVM上で動作していますので、以下のコマンドを用いてログインします。
| |
Vagrantを使用したことがある方はなじみやすいかもしれません。 SSHログインできたら、以下のコマンドで使用可能なDocker Engineのリストを表示します。
| |
disabledと表示されているものが使用可能なDockerのバージョン、currentと表示されているものが現在使用中のDockerのバージョンです。
今回は、1.12.6に変更してみましょう(Kubernetes
がサポートしているバージョンです))
Dockerのバージョンを切り替えるには、以下のコマンドを使用します。
| |
今回は1.12.6に変更したいため、以下の様にします。
| |
実行し終わり、docker versionコマンドでバージョンが変更されたことを確認されたら、CTRL-dでログアウトし、docker-machine lsでもバージョンを見てみましょう。
| |
docker-machineから見えているバージョンもきちんと変更されていることがわかりました。
まとめ
docker-machineを使用することで、ローカル環境に簡単に複数のDockerホストを作成することができます。docker-machineにはドライバを選択するオプションもあり、Virtualbox 以外にもvmware fusion 、xhyve /hyperkit などのローカル仮想マシン環境、Amazon Web Service やMicrosoft Azure 、Google Cloud Platform などのクラウド環境にDockerホストを構築することも可能です。
