概要
Rancherでマシンドライバーを使って追加したホストをdocker-machineにインポートする方法です。
手順
インポートは以下の手順で行います。
- 1) Rancherサーバからdocker-machineで使うファイル一式(マシン設定)をダウンロード
- 2) ローカルマシン上の所定のディレクトリ配下に展開
- 3)
docker-machine
コマンドに-s
オプションを指定して起動
なお、今回は解説しませんが、ダウンロードしたマシン設定ファイル(config.json)の中のパスを書き換えることで任意のディレクトリを使用してインポートする方法もあります。
前準備
以下はあらかじめ準備しておいてください。
- 手元のマシンに
docker-machine
コマンドをインストール - サードパーティ製のマシンドライバーを使う場合はインストール
(例えばさくらのクラウドの場合はこちらをインストール) - docker-machine用の設定ファイルを格納するディレクトリ(
/var/lib/cattle/machine/machines
)を作成しておく
$ mkdir -p /var/lib/cattle/machine/machines
1) Rancherサーバからdocker-machineで使うファイル一式をダウンロード
Rancherサーバでホスト一覧画面を表示し、該当ホストのマシン設定をダウンロードします。
「マシン設定」には各種証明書や秘密鍵、docker-machineでのマシンごとの設定ファイル(
config.json
)が含まれています。
ここでは「sakura-test-01」という名前のホストを対象とします。
ホストの右上のボタンからメニューを表示し、「マシン設定」をクリックします。
「ホスト名.tar」というファイルがダウンロードされます。(この例ではsakura-test-01.tar
)
2) ローカルマシン上に展開
ダウンロードしたファイルをローカルファイル上の所定の位置に展開します。
#/var/lib/cattle/machine/machines配下に展開
$ tar xvf sakura-test-01.tar -C /var/lib/cattle/machine/machines/
展開されたディレクトリ名を控えておきましょう。
3) docker-machine
コマンドに-s
オプションを指定して起動
ダウンロードしたマシン設定ファイルを利用するために、docker-machine
コマンドに-s
オプションを指定します。
-s
オプション、または--store-path
オプションは、docker-machineで利用する証明書関連ファイルやマシンの設定ファイル(json)を格納するディレクトリを指定するものです。
今回は先ほど2)で展開したディレクトリを指定すればOKです。
なお、-s
オプションは環境変数MACHINE_STORAGE_PATH
でも指定可能です。
#ダウンロードしたマシン設定ファイル一式を利用してdocker-machine起動
$ docker-machine -s /var/lib/cattle/machine/machines/展開したディレクトリ ls
#または環境変数で-sオプションを指定
$export MACHINE_STORAGE_PATH=/var/lib/cattle/machine/machines/展開したディレクトリ
$ docker-machine ls
実行例(docker-machine ls)
あとは通常のdocker-machineのホストと同様に扱えるはずです。
例えば、dockerコマンドの対象ホストを変更する場合は以下のようにeval $(docker-machine env)
を実行します。
$ eval $(docker-machine -s /var/lib/cattle/machine/machines/展開したディレクトリ env sakura-test-01)
この状態でdocker ps
を実行するとRancher関連のコンテナが表示されるはずです。
実行例(Rancherホスト上のdockerに接続)
以上でインポート完了です。
Enjoy!!