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ホストを構築することも可能です。