そういえば、docker-machine もインストールしてみました。
docker-machine は、boot2docker が、ローカルの VirtualBoxを通じてしか Docker host を作れないのとは違って、driver が対応すれば、クラウド上でも Docker Host を作れます。
インストール方法は
Docker Machine
https://docs.docker.com/machine/
にある通りです。
$ curl -L https://github.com/docker/machine/releases/download/v0.3.0/docker-machine_darwin-amd64 > /usr/local/bin/docker-machine
$ chmod +x /usr/local/bin/docker-machine
version はこんな感じ
$ docker-machine -v
docker-machine version 0.3.0 (0a251fe)
とりあえず、boot2docker と同じく VirtualBox 上の VM に、Docker host を作ってみます。
asteroid:~ kunitake$ docker-machine create --driver virtualbox dev
Creating CA: /Users/kunitake/.docker/machine/certs/ca.pem
Creating client certificate: /Users/kunitake/.docker/machine/certs/cert.pem
Image cache does not exist, creating it at /Users/kunitake/.docker/machine/cache...
No default boot2docker iso found locally, downloading the latest release...
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.7.1/boot2docker.iso to /Users/kunitake/.docker/machine/cache/boot2docker.iso...
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev
メッセージにあるように、"docker-machine env dev" とすることで、docker client が docker daemon に接続するための環境変数を得ることができます。
Dockerホストは、boot2docker と同じイメージのようです。
asteroid:~ kunitake$ docker-machine create --driver virtualbox hogehoge
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
〜以下略〜
とすると、hogehogeというVMが作られるので、独立した別々の Docker host を用意できますね。
boot2docker では、
$ boot2docker ssh
とすることで、Docker Host にログインできましたが、同じような要領で、
asteroid:~ kunitake$ docker-machine ssh hogehoge
## .
## ## ## ==
## ## ## ## ##==
/"""""""""""""""""\___/
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
|__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
'_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
|_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.7.1, build master : c202798 - Wed Jul 15 00:16:02 UTC 2015
Docker version 1.7.1, build 786b29d
docker@hogehoge:~$
と、イメージ名を指定することで個別に Docker Host にログインすることができます。
ちなみに、docker-machine では、Docker host に名前を作られる関係上、たとえ 1つのイメージしかなくても、省略するとこんな感じで怒られます。
asteroid:~ kunitake$ docker-machine ssh
Error: Please specify a machine name.
管理上の Docker Host 一覧を見るには
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
hogehoge virtualbox Running tcp://192.168.99.101:2376
止めるには、kill、でいいのかな?
asteroid:bin kunitake$ docker-machine kill hogehoge
asteroid:bin kunitake$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
hogehoge virtualbox Stopped
asteroid:bin kunitake$ docker-machine kill dev
asteroid:bin kunitake$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev virtualbox Stopped
hogehoge virtualbox Stopped
あ、killじゃなくて、stop があったので、stop の方が良かったかも。消すのは、rm です
asteroid:bin kunitake$ docker-machine rm hogehoge
Successfully removed hogehoge
asteroid:bin kunitake$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev virtualbox Stopped
止めた Docker Host は、start で起動できます。
asteroid:bin kunitake$ docker-machine start dev
Starting VM...
Too many retries. Last error: Maximum number of retries (60) exceeded
ありゃ?再開できない……
asteroid:bin kunitake$ docker-machine env dev
Unexpected error getting machine url: exit status 255
むむ?
asteroid:bin kunitake$ docker-machine start dev
Starting VM...
Too many retries. Last error: Maximum number of retries (60) exceeded
asteroid:bin kunitake$ docker-machine upgrade dev
Error getting SSH command: exit status 255
asteroid:bin kunitake$ docker-machine stop dev
asteroid:bin kunitake$ docker-machine upgrade dev
Error: machine must be running to upgrade.
うーん、手詰まり感が。
バグなのか、環境依存的な問題なのか……この当たりが問題なく動けば、汎用性が高くてヨサゲなんだけど。
IPv4/IPv6 meter |
思ったより安い……時もある、Amazon |