Docker Machine を使って DigitalOcean に Dockerホストを立てる

More than 1 year has passed since last update.

概要

Docker公式オーケストレーションツールの 1 つ Docker Machine を使って DigitalOcean に Docker がインストールされた Droplet を作成し、hello world を出力するコンテナを走らせてみるという話

必要なもの

  • Access Tokens (Writable)

_2015-02-28_12_25_33

_2015-02-28_12_26_53

_2015-02-28_12_27_44

_2015-02-28_12_28_34

Hello World

docker-machine create コマンドで Dockerホストを作成する。

(token はダミー)

$ docker-machine create \
    --driver digitalocean \
    --digitalocean-access-token 
    f851029140a409712047b22d4c2696277af113d02feebf5477fb27 \
    staging
INFO[0000] Creating SSH key...
INFO[0002] Creating Digital Ocean droplet...
INFO[0005] Waiting for SSH...
INFO[0074] Configuring Machine...
INFO[0141] "staging" has been created and is now the active machine.
INFO[0141] To point your Docker client at it, run this in your shell: $(docker-machine env staging)

マシンリストを見てみる

$ docker-machine ls
NAME      ACTIVE   DRIVER         STATE     URL                          SWARM
dev                virtualbox     Running   tcp://192.168.99.100:2376
staging   *        digitalocean   Running   tcp://104.236.194.241:2376

SSH ログイン

$ docker-machine ssh staging
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-43-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Fri Feb 27 22:33:28 EST 2015

  System load:  0.25               Processes:              70
  Usage of /:   11.4% of 19.56GB   Users logged in:        0
  Memory usage: 12%                IP address for eth0:    104.236.194.241
  Swap usage:   0%                 IP address for docker0: 172.17.42.1

  Graph this data and manage this system at:
    https://landscape.canonical.com/

root@staging:~#

SSH 経由でのコマンド実行

$ docker-machine ssh staging "hostname && uname -a"
staging
Linux staging 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

マシンのストップ

$ docker-machine stop staging
$ docker-machine ls
NAME      ACTIVE   DRIVER         STATE     URL                          SWARM
dev                virtualbox     Running   tcp://192.168.99.100:2376
staging   *        digitalocean   Stopped   tcp://104.236.194.241:2376
# DO 上では => Droplet が Status Off になっている

マシンのスタート

$ docker-machine start staging
$ docker-machine ls
NAME      ACTIVE   DRIVER         STATE     URL                          SWARM
dev                virtualbox     Running   tcp://192.168.99.100:2376
staging   *        digitalocean   Running   tcp://104.236.194.241:2376

Hello World

$ docker $(docker-machine config staging) run busybox echo hello world
Unable to find image 'busybox' locally
511136ea3c5a: Pull complete
df7546f9f060: Pull complete
ea13149945cb: Pull complete
4986bf8c1536: Pull complete
busybox:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.

Status: Downloaded newer image for busybox:latest
hello world
$ docker $(docker-machine config staging) ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                     PORTS               NAMES
fd02ad4af931        busybox:latest      "echo hello world"   8 seconds ago       Exited (0) 6 seconds ago                       reverent_pasteur

マシンの削除

$ docker-machine rm staging
$ docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM
dev             virtualbox   Running   tcp://192.168.99.100:2376

REF

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.