Amazon

2015年7月26日日曜日

docker-machineでdocker環境を準備する


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
$