2016年1月23日土曜日

実はよく知らない、『「Docker Machine/Compose/Swarm」を使ってみよう』って勉強会に参加したよ!


なのまるです。
dockerのことよーくわからないので、勉強してきました!

もくじ



「Docker Machine/Compose/Swarm」を使ってみよう

なーんかよくわかんないけど、「Docker」の動向追えてないし。
知っておくことも必要!って思って何やるかよくわからないけど・・・

「さくらの横田さん」と「前佛さん」なら面白そう!って事で、申し込みました〜


Docker Machineを使ってみよう

遅刻しちゃって、途中から聞かせてもらいました・・・。

そもそも、Docker Machineってなに?
なんだったのですが、ローカルマシンもしくはリモート、クラウド環境に
『Dockerホスト』を作成、停止、再起動などを行う
dockerクライアントソフト
って、位置づけのようです!

docker doc(ja)には、以下の事ができると書かれていました。
  • Docker ホストに対する start(開始)、inspect(調査)、stop(停止)、restart(再起動)
  • Docker クライアントとデーモンの upgrade(更新)
  • Docker クライアントがホストと通信できるよう configure(設定)
聞いたのは後半からで、ハンズオンのような感じがワクワクしました!

資料公開されたら、復習してみたいと思います!
  • docker-machineをインストールする
  • docker-machine-sakuracloud を使って「さくらのクラウド」にDocker実行環境を作る
追記
資料公開されました。


docker-machine-sakuracloud

docker Machine には、ローカル、クラウド環境に作成するために「ドライバー」が必要で、
デフォルトでVirtualBOX、AWSや、Azureなどいくつかサポートされています。

しかも、Plugin機構が「0.5」から採用されているようで、「さくらのクラウド」に対応したドライバを中の人が作成してくれているそうです。

現在サポートされているのは、
  • Amazon Web Services
  • Microsoft Azure
  • Digital Ocean
  • Exoscale
  • Google Compute Engine
  • Generic
  • Microsoft Hyper-V
  • OpenStack
  • Rackspace
  • IBM Softlayer
  • Oracle VirtualBox
  • VMware vCloud Air
  • VMware Fusion
  • VMware vSphere
がありました!
参考:Drivers


で、さくらのクラウド用ドライバー

要は、さくらのクラウドAPIを使って、サーバーを立ち上げて、Docker環境を作成するまでを
$ docker-machine create --driver=sakuracloud \
    --sakuracloud-access-token=[アクセストークン] \
    --sakuracloud-access-token-secret=[アクセストークンシークレット] \
    sakura-dev
こ~んなコマンドで、出来るんですって〜

Docker Compose/Swarm 入門

前佛さんから、Docker Engine/ Machine / Compose / Swarmについてお話いただきました!
  • Docker Engine・・・Dockerデーモン
  • Machine ・・・Dockerホストのクライアントツール
  • Compose ・・・App,DBなどの構成を組み合わせて一気に作成起動できるツール
  • Swarm ・・・負荷分散や配置管理などを行えるツール
Dockerコンテナは、ユーザー空間に仕切られた隔離された実行環境
Dockerイメージは、Dockerコンテナの状態をコミットされた状態のもの
Docker Compose・・・YAMLを使って構成を作ると、それにしたがって複数コンテナを作成するツール
Docker Swarm・・・ホストサーバーにかかる負荷の分散、クラスタ作成管理をするツール

Docker Machine/ Compose / Swarm が三位一体になってエコシステムを作るんですね〜

追記
資料公開されました。

まとめ

  • Docker Machineを使って、Dockerホストを立ち上げる!
  • Docker Composeを使って、Dockerの構成管理を行う!
  • Docker Swarmを使って、Dockerクラスタを管理する!
と、こんな感じないでしょうか!

日本語でdockerドキュメントが書かれているサイト

共有