こんばんは。カメレオンです。

最近寒すぎてつらいです。

今日はあったかくてうれしかったです。

 

先週の金曜日に久しぶりに(!)勉強会に行ってきました。

 

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

@さくらインターネットさん

https://sakura-kanto.doorkeeper.jp/events/36134

 

 

第一部

『Docker Machineを使ってみよう 』 横田 真俊さん

 

Docker Machineについての説明とデモを見せてくださいました。

「DockerとDocker Machineをインストールして使えるようになろう!」が目標…

 

横田さん 「Docker使ったことある人がほとんどのようなので、

 概要というか復習みたいなところは飛ばしますね」

カメレオン 「ひえ…」

 

Dockerのメリット

 ・検証、使い捨て環境がすぐ使える

 ・環境の統一化

 ・クラウド時代のバズワードが手軽に実現

 

Docker Mchineとは?

 ・Docker社が出してるプロビジョニングツール

 ・自分のPC環境からDockerをインストールしたサーバーが簡単に作れる

 ・VirtualBoxや複数のクラウド事業者も利用できる

 ・複数の環境を一括管理できる →さくらクラウドがない!!

 ・安心してください!さくらクラウド用のプラグインがありますよ。

 

ここからDocker Machineを使ってSAKURA CLOPUD Driverのインストール方法を

デモで見せてくれました。

Docker Machine使えば、VMとかローカル複数のクラウドを立ち上げるのが簡単になりますよ!

 

横田さんのスライドはこちら
『Docker Machineを使ってみよう』

 

休憩をはさみまして…

 

第二部
『今だからこそ知りたいDocker Compose/Swarm 入門』 前佛 雅人さん

前佛さんはDockerの公認トレーナーとか認定されてるけど

Docker社の回し者じゃないそうです。

 

このスライドで得られる知識

 ・Docekr EngineとDocker Composeのちがい

 ・Docker Swarmがスケジューリングを管理

 ・Engine/Swarm/Composeは三位一体

 

Compose?Swarm?Machine?Engine?

 ・それぞれ役割があってオーケストラのようなもの

 ・詳しくは後ほど

 

どうしてDockerなの?

 ・手元の開発環境からコードを社内共有サーバーや

  クラウド上で動かすには構成管理ツールが便利!

 ・しかし構成管理ツールだけでは万能じゃない

  決められた手順を実行するだけなので、正確にデプロイされたかは確認する必要がある

 ・テスト環境では動いたけど、本番環境にはコマンドがなくて動かない!事件

 ・Dockerなら、Dockerイメージに入れちゃえばどこでも動くよ!コピーするだけ!

 ・必要なものは全部コンテナに入ってるの動きます

 

Docker Engineって?

 ・環境をコンテナ化し、移動・実行する仕組みを提供。

 ・Docker Machineを使ってDocker Engineを作る。

 

Dockerイメージを構築する方法

 ・Docker Hubから取得する

 ・コンテナをコミットする

 ・Docker Fileで構築する

 ・Docker Fileから構築がいいんじゃないかな…

  Docker Fileにコンテナの構成内容をまとめて記述しておけば、何度でも誰でも同じ環境が構築できる。

 

Docker Fileで楽々構築\(^o^)/

 

webとDBが別々のコンテナだったら…?

 ・毎回 "docker run" をするのは面倒…

 ・間違えそう…

 

そこでDocker Compose!

 ・複数コンテナの一斉起動・停止をしてくれる

 ・複数のコンテナをコードで管理

 ・コンテナのスケール

 ・Docker Compose1.6からネットワーク機能に対応

 ・コマンドもDockerと似てる

 ・手元の環境で開発したい →dockerコマンド

  テスト環境 →docker Composeを使って一斉管理

 ・yaml形式のComposeファイルで設定

 ・どのタイミングでコンテナを起動するかを記した楽譜のようなもの

 

複数コンテナの管理も楽々\(^o^)/


複数サーバーの場合は??

 ・サーバーごとに切り替えて "docker run" をしなくてはいけない…

 

そこでDocker Swarm!

 ・Swarmはスケジューラ― 

 ・どのサーバーでどのコンテナを起動するかを検討して配置してくれる

 ・dockerコマンドやdocker-composeコマンドを使って操作できる

 ・Swarmを意識しなくてもスケジューリングしてくれる

 ・ネットワーク機能に対応してる

 ・奏者(Docker Engine)に適切に指示をだす指揮者のようなもの

 

三位一体

 ・指揮者(Docker Swarm)が適切に指示を出して、

  楽譜(Compose)に合わせて、

  奏者(Engine)が曲(コンテナ)を演奏する

  オーケストラのようなもの!

 

前佛さんのスライドはこちら

『今だからこそ知りたい Docker Compose/Swarm 入門』

 

いやーわかりやすかったです。

横田さんのデモでインストールの流れがイメージできたし、

前佛さんのスライドはとにかくわかりやすい!

ポンコツカメレオンもこんぽーず?すわーむ?が理解できた、ような、気が、しました!

少なくともそれぞれの役割は整理できました…よ?

 

そんなかんじで

カメレオンのDockerデビューにまた一歩近づいたのでした。

 

以上。