Docker Cloud触ってみた(With Micorsoft Azure)

Docker-cloudを触ってみたメモ書き
Nodes、Services、Stacksというコンポーネントに分かれている様子。
Welcomeというチュートリアルがあるので、それに従っていくだけで概ね実行させるまではなんとかなった。

Microsoft AzureをDocker-Cloudで扱えるようにする

まず、Docker-CloudがAzureを制御するための入り口となる証明書をダウンロード。
それを
https://manage.windowsazure.com/
にアクセスして、アップロードしておく。こうすることで、Docker-CloudがAzureの中のリソースを制御できるようになる。そして、対象となるサブスクリプションのIDを取得(わけのわからないGUIDみたいなやつ)。それを、Docker-Cloudに渡してあげるという流れ。

Nodes

Nodesという、Dockerの本体そのものをまず作る。これがServicesを詰め込む居住スペースになる。当然、親(今だとAzureの仮想マシン)のマシンによってその空間は変わるだろうけれども(メモリとかCPUとか)。Azureのサブスクリプションを関連付けておけば、そこから自動的に仮想マシンを立ち上げてくれる。ただしこれはASM(クラシック仮想マシン)となる。データディスクがホストキャッシュなしで接続されていた(ノード用かな?)。また、2ノード以上は、課金が必要な様子。

Services

Servicesは、Nodesに詰め込むコンテナとなるサービスを定義する。これはDockerHubにあるものを使うことができる。自分用のPrivateなものもここで使える。このサービスは、公開ポートなど通常コマンドでやることも定義しておくことができる。

Deploy

定義したサービスを、Node上で動かすことになる。このときにServiceで定義された必要なポートは、Azure上のエンドポイントにも自動的に追加され開放された。また、サービスを変更した場合などは、Redeployすることができる。

 

Stacks

定義したServiceを組み合わせたものとなる様子。一括でデプロイできる様子。チュートリアルのものしか見てないけれども、他のサービスにリンクすることができるっぽい。

メモ

  • Nodeを削除したら、Azure上の仮想マシンも削除された。
  • DockerCloud上からRedeployすると、ポートの開放もやり直してくれる様子。
  • ロードバランスは、それ用のサービスを使うか、DNSを使うか。
  • 複数ノードのデプロイメントストラテジーとか試してみたいけど、課金して怒られるのは嫌なので、ぐっとこらえた。
  • 独自のServiceのリンクをどうやって動的に結ぶか
  • そういえば、DockerのホストOSには入れない。