Help us understand the problem. What is going on with this article?

docker-machineでRancherOSを立ちあげる

More than 3 years have passed since last update.

docker-machineとそのメリット

docker-machineは仮想マシン上にDocker Engineをインストールするツールです。
docker-machineコマンドを使用することで、Dockerホストを作成・管理することが可能です。
docker-machineを使用してDockerホストを作成すると、

$ docker-machine env <MACHINE_NAME>

でシェル評価可能なDocker接続情報を得ることができ、

$ eval $(docker-machine env <MACHINE_NAME>

とすることにより、そのセッション内ではあたかもローカル環境の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 create -d virtualbox --virtualbox-boot2docker-url https://releases.rancher.com/os/latest/rancheros.iso --engine-install-url https://raw.githubusercontent.com/rancher/install-docker/master/17.06.sh

インストールが完了したら、docker-machine lsコマンドで実行中のDockerホストの一覧を表示することができます。

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

Docker Engineのバージョンを切り替える

せっかくRancherOSを使用しているので、Docker Engineのバージョンを切り替えてみましょう。
Docker Engineのバージョンを切り替えるにはRancherOS上でrosコマンドを使用するのでした。

RancherOSはdocker-machineで作成されたVM上で動作していますので、以下のコマンドを用いてログインします。

$ docker-machine ssh <RANCHEROS_VM_NAME>

Vagrantを使用したことがある方はなじみやすいかもしれません。
SSHログインできたら、以下のコマンドで使用可能なDocker Engineのリストを表示します。

$ sudo ros engine list
disabled docker-1.10.3
disabled docker-1.11.2
disabled docker-1.12.6
disabled docker-1.13.1
disabled docker-17.03.1-ce
disabled docker-17.04.0-ce
disabled docker-17.05.0-ce
current  docker-17.06.0-ce

disabledと表示されているものが使用可能なDockerのバージョン、currentと表示されているものが現在使用中のDockerのバージョンです。
今回は、1.12.6に変更してみましょう(Kubernetesがサポートしているバージョンです))
Dockerのバージョンを切り替えるには、以下のコマンドを使用します。

$ sudo ros engine switch <DOCKER_VERSION>

今回は1.12.6に変更したいため、以下の様にします。

$ sudo ros engine switch docker-1.12.6

実行し終わり、docker versionコマンドでバージョンが変更されたことを確認されたら、CTRL-dでログアウトし、docker-machine lsでもバージョンを見てみましょう。

$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
ros    -        virtualbox   Running   tcp://192.168.99.100:2376           v1.12.6

docker-machineから見えているバージョンもきちんと変更されていることがわかりました。

まとめ

docker-machineを使用することで、ローカル環境に簡単に複数のDockerホストを作成することができます。docker-machineにはドライバを選択するオプションもあり、Virtualbox以外にもvmware fusionxhyve/hyperkitなどのローカル仮想マシン環境、Amazon Web ServiceMicrosoft AzureGoogle Cloud Platformなどのクラウド環境にDockerホストを構築することも可能です。

nasa9084
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away