docker-machineでdocker環境を準備する
docker-machineを使ってdigitaloceanにdocker環境を準備してみました。
digitaloceanは、 高速で安価 なパブリッククラウドサービスです。
検証用のマシンが沢山必要な場合に便利です。
事前準備
docker-machineのインストール
docker-machineのインストールは、ダウンロードとパーミッションの設定だけです
[インストールマニュアル][docker-machine]の手順通りインストールします。
今回使ったのは、下記のバージョンです。
docker-machineバージョン
docker-machineのバージョン
$ docker-machine --version
docker-machine version 0.3.1 (40ee236)
$
digitaloceanのサインアップとtokenの作成
digitaloceanにアクセスしてアカウントを取得します。
APIメニューを選択して"Generate new token"ボタンを押して新しいtoken(文字列)を作成します。
このtokenを使ってdocker-machineがdigitaloceanにアクセスします。
digitaloceanにdocker用の仮想マシンを作成
下記のコマンドでdigitaloceanに必要なだけ、docker環境を作成することができます。
下記の通りswap1というマシンを1台準備するのに3分弱かかります。
digitaloceanで直接dropletを作るよりちょっと時間がかかります。
bash
$ time docker-machine create --driver digitalocean --digitalocean-access-token <token> swarm1
Creating SSH key...
Creating Digital Ocean droplet...
To see how to connect Docker to this machine, run: docker-machine env swarm1
real 2m25.812s
user 0m2.050s
sys 0m0.160s
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
swarm1 digitalocean Running tcp://**.**.**.**:**
$
作成した仮想マシンへのアクセス
マシンへのアクセスは、下記の通りです。
bash
$ docker-machine ssh swarm1
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-57-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Sun Jul 26 03:35:36 EDT 2015
System load: 0.49 Processes: 70
Usage of /: 7.9% of 19.56GB Users logged in: 0
Memory usage: 12% IP address for eth0: **.**.**.**
Swap usage: 0% IP address for docker0: **.**.**.**
Graph this data and manage this system at:
https://landscape.canonical.com/
root@swarm1:~# hostname
swarm1
root@swarm1:~# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64
root@swarm1:~#
作成したマシンの削除
使い終わったら削除します。
動かしっぱなしにすると無駄に課金されます。
bash
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
swarm1 digitalocean Running tcp://**.**.**.**:**
$ time docker-machine rm swarm1
Successfully removed swarm1
real 0m2.257s
user 0m0.041s
sys 0m0.017s
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
$