Shipyard – node

先日のエントリの続き。最後に残っていた`node`を試す。

■ 環境

  • Shipyard 3.0.3
  • Docker 1.10.3
  • Docker Machine 0.6.0
  • Mac OSX El Capitan

■ docker-machine

Dockerのノード追加となるのでDockerが稼働しているホストが2つ必要である。よって`docker-machine`で下記のように2つのノードを起動した。

$ docker-machine create -d virtualbox shipyard1
Running pre-create checks...
Creating machine...
  :
$ docker-machine create -d virtualbox shipyard2
Running pre-create checks...
Creating machine...
  :
$
$ docker-machine ls
NAME        ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
local       -        virtualbox   Running   tcp://192.168.99.100:2376           v1.10.3
shipyard1   -        virtualbox   Running   tcp://192.168.99.101:2376           v1.10.3
shipyard2   -        virtualbox   Running   tcp://192.168.99.103:2376           v1.10.3
$

shipyard1“と”shipyard2“を使って`node`を確認する。

■ node1

既に稼働させているが、下記のように稼働させている。

$ eval $(docker-machine env shipyard1)
$
$ curl -s https://shipyard-project.com/deploy | bash -s
  :
$

当初はこのまま稼働させて試していたのだが問題に当たって挫折した。下記のように稼働させておく必要があるので、一度`remove`で環境をキレイにしてから再挑戦をした。

$ eval $(docker-machine env shipyard1)
$
$ curl -s https://shipyard-project.com/deploy | IP=192.168.99.104 bash -s
Deploying Shipyard
 -> Starting Database
 -> Starting Discovery
 -> Starting Cert Volume
 -> Starting Proxy
 -> Starting Swarm Manager
 -> Starting Swarm Agent
 -> Starting Controller
Waiting for Shipyard on 192.168.99.104:8080
.............
Shipyard available at http://192.168.99.104:8080
Username: admin Password: shipyard

`IP=192.168.99.104`を指定している。指定しているIPは`docker-machine`で稼働させているVMのIPである。これを指定することでVirtualBoxのeth0に割り当てられている”10.0.2.15“から変更することができる。1台で稼働させている分には”10.0.2.15“のままでも問題がないのであるが、`node`で複数台のDockerホストを追加しようとすると、すべてのDockerホストが同じIPを参照しようとしてしまうためSwarmクラスタが正常に組めなくなってしまっていた。よってこの設定を追加している。

Shipyard > NODES
http://192.168.99.104:8080/#/nodes

shipyard-node-001

■ node2

本題の`node`を実行する。

$ eval $(docker-machine env shipyard2)
$
$ curl -s https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://192.168.99.104:4001 IP=192.168.99.105 bash -s
Adding Node
 -> Starting Cert Volume
  :
Node added to Swarm: 192.168.99.105
$

正常に追加できたようである。画面から確認する。

Shipyard > NODES
http://192.168.99.104:8080/#/nodes

shipyard-node-002

正常に2つ目のノードが認識されている。

以上。

■ 関連

Lambdaで使えるnodeのversion

表題の件について調べたメモ。

■ 環境

  • AWS Lambda

■ node

Lambdaをnodeで実装したいのだが、開発するにあたってローカルのnodeのversionをどれにすれば良いのだろうか?という疑問。

調べてみるとドキュメントに記載されていた。

Lambda実行環境と利用できるライブラリ
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/current-supported-versions.html

nodeは”v0.10.36“だそうである。ローカルの環境をこれに合わせて準備する。

nodebrewを使用しているので下記のようになる。

$ nodebrew install-binary v0.10.36
fetch: http://nodejs.org/dist/v0.10.36/node-v0.10.36-darwin-x64.tar.gz
######################################################################## 100.0%
Install successful
$
$ nodebrew use v0.10.36
use v0.10.36
$
$ node -v
v0.10.36
$

以上。

■ 関連

Shipyard – upgrade

先日のエントリの続き。今回は`upgrade`を試してみる。

■ 環境

  • Shipyard 3.0.3
  • Docker 1.10.3
  • Docker Machine 0.6.0
  • Mac OSX El Capitan

■ upgrade

実行するには下記のようにする。

$ curl -s https://shipyard-project.com/deploy | ACTION=upgrade bash -s
Upgrading Shipyard
 -> Pulling shipyard/shipyard:latest
latest: Pulling from shipyard/shipyard
ee54741ab35b: Already exists
432610af6c38: Already exists
cac7eda6459a: Already exists
690e7ae80e81: Already exists
Digest: sha256:773f5d0cb53d3ec67c029e2dcbbf319777360adefa08da3fdbd3016866de34fb
Status: Image is up to date for shipyard/shipyard:latest
 -> Upgrading Controller
FINISH
$

コンテナ”shipyard/shipyard“を`docker pull`しているだけのようである。

$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
shipyard/shipyard       latest              fa02811c78c6        7 days ago          58.68 MB
  :
$

以上。

■ 関連

Shipyard – remove

先日のエントリで起動した”Shipyard“のコンテナを停止・削除する。

■ 環境

  • Shipyard 3.0.3
  • Docker 1.10.3
  • Docker Machine 0.6.0
  • Mac OSX El Capitan

■ remove

Dockerのコンテナとして起動している為、すべてのコンテナを`stop`と`rm`してしまえばそれでも事足りる。

$ docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                            NAMES
0c68f7ec7211        shipyard/shipyard:latest       "/bin/controller --de"   About an hour ago   Up About an hour    0.0.0.0:8080->8080/tcp                           shipyard-controller
4f6ed2f127af        swarm:latest                   "/swarm j --addr 10.0"   About an hour ago   Up About an hour    2375/tcp                                         shipyard-swarm-agent
9d31b345229f        swarm:latest                   "/swarm m --replicati"   About an hour ago   Up About an hour    2375/tcp                                         shipyard-swarm-manager
2475bf290c38        shipyard/docker-proxy:latest   "/usr/local/bin/run"     About an hour ago   Up About an hour    0.0.0.0:2375->2375/tcp                           shipyard-proxy
da5007e0303e        alpine                         "sh"                     About an hour ago   Up About an hour                                                     shipyard-certs
e1a9916dc375        microbox/etcd:latest           "/bin/etcd -addr 10.0"   About an hour ago   Up About an hour    0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp   shipyard-discovery
b6540ef83407        rethinkdb                      "rethinkdb --bind all"   About an hour ago   Up About an hour    8080/tcp, 28015/tcp, 29015/tcp                   shipyard-rethinkdb
$

しかし、折角なので”shipyard“で用意されているシェルを利用してこれらを停止させてみる。

停止と削除をするには下記を行う。

$ curl -s https://shipyard-project.com/deploy | ACTION=remove bash -s
Removing Shipyard
 -> Removing Database
 -> Removing Discovery
 -> Removing Cert Volume
 -> Removing Proxy
 -> Removing Swarm Agent
 -> Removing Swarm Manager
 -> Removing Controller
Done
$

確認する。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$

`ACTION=remove`は変数として実行しているが、”ACTION“で指定できるのは下記があるようだ。

ACTION“を指定しない場合は”deploy“が適用されているようだ。

以上。

■ 関連

Shipyard – deploy

Dockerの管理ツールとしての表題を試してみる。

■ 環境

  • Shipyard 3.0.3
  • Docker 1.10.3
  • Docker Machine 0.6.0
  • Mac OSX El Capitan

■ shipyard

DockerをWebUIで管理することができる。

shipyard-001

https://shipyard-project.com/

■ deploy

install“かと思いきや”deploy“である。Dockerのコンテナとして起動するようだ。よって事前にDockerの環境を確認しておく。

Dockerは`docker-machine`で稼働させている。下記の通り。

$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
local   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.10.3
$

実行する。

$ curl -s https://shipyard-project.com/deploy | bash -s
  :
Waiting for Shipyard on 10.0.2.15:8080
....
Shipyard available at http://10.0.2.15:8080
Username: admin Password: shipyard
$

今回は`docker-machine`で起動しているDockerホストで稼働させている為、表示されたURLにアクセスはできない。DockerホストのIPは前述の実行結果から得られているので、それを元にアクセスする。今回は下記の通り。

http://192.168.99.100:8080/

shipyard-002

前述の”Username/Password“でログインする。

shpyard-003

いろいろと情報を見ることができる。すべてCLIで取得できる内容である。CLIに慣れない人であったり、外部から2375ポートにアクセスできなかったりする場合等に有用なのかもしれない。

またコンテナを新規に起動したり、起動しているコンテナの停止等の操作、コンテナイメージの管理、ログの参照といったことも一通りできるようだ。

今回は`deploy`しただけであるが、swarmetcdなどのコンテナも一緒に稼働し、1ノードのみではあるがDockerクラスタ環境が自動的に構築される。すでにDockerクラスタ環境を構築済みである場合には、これらは不要なのでオプションで既存のものを使用するようにするか、手動でそれぞれ適当なコンテナを起動する必要があるようだ。

以上。

■ 関連