ゴールデンウィークにやってみましたので、その備忘録です。この後は、Swarm 入れてやろうなんてことを考えています。
微妙に突っかかったりしています。
前提条件/構成
次の構成で実施しました。
- クライアント
iMac(El Capitan)
へ docker-toolbox をインストールしておきます - サーバ Proxmox VE 上に、次の 3つの仮想マシン(VM) を準備しました
- docker00 Debian jessie : Swarm Manager 用 (仮IP 192.168.0.100)
- docker01 Debian jessie : Docker agent #1 (仮IP 192.168.0.101)
- docker01 Debian jessie : Docker agent #2 (仮IP 192.168.0.102)
- debian サーバでは、次の通り構成してます
- ssh で root以外はログインできるように設定
- docker 管理をするユーザが、パスワードなし sudoできるように設定
- 今回は
docker
ユーザで実行します
今回は、この 3台へ docker-machine
を使って、docker-engine
をインストールしました。
docker-machine を利用する理由
リモートに Docker 用のサーバ/VM を準備するとなると、管理が必要です。その管理の手間は少しでも抑えたく、今回は docker-machine
を利用することにしました。
以前は、CoreOS でクラスタを構成して管理することも考えたのですが、管理側となるクライアントの Macの最新版 Dockerと、CoreOS
上の Docker とで、バージョンがあわずに、接続すらできない事象が多くあり、その為にα版やβ版を利用することも難儀ですし、さらに言うと CoreOS
のα版でも Dockerのバージョン追いついてこないことが多く、颯爽と諦めました。
debianサーバへ Dokcerを構築する理由
自宅で Proxmox VE 使って、仮想サーバたくさん運用してるので、個人が下手にパブリッククラウドに手を出してしまうと、運用コストでガッカリするのでやめました。
3万くらいあると、そこそこのサーバがえいやと建てられてしまうのと、電気代も数百円単位で運用できてしまっているので、数年利用することを考えるとお察しなのです。
とは言え、最近、格安サーバが出てこなくなったので、ある程度のところでクラウドへ移行していくかも知れません。
docker-machine を使って、debian へ docker-engine を導入しよう
フツーの Linux 上へ docker-machine
を使ってインストールする場合には、次の generic
ドライバを使います。実のとこ、Proxmox
に対応したドライバがあるのですが、今はまだ時期尚早感すごかったので、見なかったことにしています。
汎用(generic)ドライバ — Docker-docs-ja 1.11.0 ドキュメント
後は簡単。各サーバに対して、次のコマンド。
$ docker-machine create -d generic --generic-ssh-user docker --generic-ip-address 192.168.0.100 docker00
各コマンドラインオプションは、次の項目を設定しましょう
オプション | 今回の設定値 | 説明 |
---|---|---|
-d | generic | 使用するドライバを指定します。今回は generic
|
--generic-ssh-user | docker | リモート(今回はdebian)側で、sudo 可能なユーザ |
--generic-ip-address | 192.168.0.100 | 導入先のサーバ/VM のIPアドレス |
docker00
は、管理するための名前で、ホスト名でもなんでも良いです。
簡単ですね、これを他の docker01
docker02
にも実行してみると、インストール完了です。ネットワーク環境にも寄りますが、1台の docker-engine 導入完了までに 5〜10分くらいかかるっぽいです。気長に待ちましょう。
導入後に docker-machine ls
コマンドで、ステータスが見られます、今だとこんな感じですね。
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
docker00 * generic Running tcp://192.168.0.100:2376 v1.11.1
docker01 - generic Running tcp://192.168.0.101:2376 v1.11.1
docker02 - generic Running tcp://192.168.0.102:2376 v1.11.1
おめでとうございました(´∀`)と言いつつ、重要なポイントは次
注意事項
generic ドライバ on docker-machine v0.7.0 では、--generic-ssh-key
を使って、ssh-key のファイルを指定することはできません。bugっぽいです。直るの待ちましょう。