meta-something

論文とか研究とか趣味のネタとか

ゆるふわなDockerの使い方(Docker布教)

Speaker Deck

speakerdeck.com

なにこれ

研究室でDockerの使い方を布教したときのスライドです。 ゆるふわに「とりあえずどんな感じで使えるのかわかればいいや」という感じの内容です。

なんでそんなことを

  • 個人が使う場合でも便利なツールだから
    • 研究領域のアプリケーション配布にもDockerがもっと普及して欲しい
  • 自身の研究を話すときの理解の助けになる
    • 味方を増やしたいのと、人に説明する練習として
  • 東工大が2017年夏に稼働を予定するスパコンがコンテナ型仮想化を前提にするらしい(?)ので、コンテナ型仮想化について知っておいて損はない

個人的な参考資料とか

www.slideshare.net

www.slideshare.net

論文紹介『An Updated Performance Comparison of Virtual Machines and Linux Containers』

タイトル

An Updated Performance Comparison of Virtual Machines and Linux Containers

著者

Wes Felter ♰ , Alexandre Ferreira ♰ , Ram Rajamony ♰ and Juan Rubio ♰
IBM Research Division, Austin Research Laboratory

発表媒体

  • IBM Research Report, RC25482 (AUS1407-001), 2014.
  • IEEE International Symposium on Performance Analysis of Systems and Software, pp.171-172, 2015.

概要

Linux Container (Docker)と Virtual Machine (KVM)を比較対象に CPU, メモリ, ネットワークI/O, ファイル I/O の性能をベンチマークや DB を利用した模擬アプリ等を利用して計測した論文. 設定に依存するが Docker は KVM と同等またはそれ以上で,実環境に近い性能を示している.

スライド(英語)

speakerdeck.com

その他、日本語の紹介文献

blog.yuuk.io speakerdeck.com

『プログラマのためのDocker教科書』感想

数か月前からちまちまDockerを調べては触ってきたのだけれど、そろそろ情報がまとまった書籍を元に知識を整理したくなったので読んでみた。

本書は、Linuxのコンテナ仮想化ツールであるDockerを使って、コードでインフラ環境を構築するための入門書です。開発環境や実行環境などインフラ構築「自動化」の経験がない開発者を対象に、おさえておきたいシステム基盤&インフラの基礎知識に加えて、Dockerによるインフラ構築と管理の方法をやさしく解説します。理解しにくいネットワークや仮想技術などのインフラの基礎概念を図解しながら、開発/実行環境を実際に構築することで、構成管理ツールを使ったインフラ構築の流れを解説していきます。

目次は以下の通り。

  1. おさえておきたいシステム/インフラの知識
  2. コンテナ仮想化技術とDocker
  3. Dockerのインストールと基本コマンド
  4. Dockerfileを使ったコードによるサーバ構築
  5. Dockerイメージの共有─Docker Registry
  6. 複数コンテナの一元管理─Docker Compose
  7. マルチホスト環境でのDocker運用─Docker Machine、Docker Swarm
  8. クラウドでのDocker運用

コンテナ型仮想化技術の難しい&細かい技術の記述は控えめに、インフラの基礎知識を簡単に前置きしたあと、実行環境の仮想化を実現するために「Dcokerをどう使えるか」がまとめてある。「Dockerで何ができて、何が嬉しいのか?」を知りたい入門者向けにはとても良い内容であり、特に1~4章はインフラの基礎知識とDockerの用例が実際のコマンドレベルで書かれているので、社内研修の教科書とかに使えるのでは?という印象を受ける。細かい内容はQiitaとか公式ドキュメントとか個人ブログを見ればもっと詳しく記述されている記事があるけれど、やはり全部まとめて書かれた書籍があることは大事。個人的に身内でDocker利用を布教したいと考えていたので、他人への紹介や参考書としても重宝しそう。

ただし、Docker周辺技術はあまりにも変化が早いので、既に一部記述が最新ではない部分があったりなかったり。本書は初版が2015年11月19日と約1年前なのだけれど、7,8章で触れられているクラスタ管理技術であるDocker Swarmについては、2016年6月末にDocker Engineと統合されてDocker Swarm Modeとしてより簡単にネットワークやサービスの構築が利用できるようになっている。

docs.docker.com

qiita.com

その部分は本書ではおまけのような扱いなので、あまり気にする必要はない(クラスタ管理するような人は、たぶん自分で調べられるだろうし)。特に前半~中盤のコアなDockerコマンド周辺はそうそう変化があるものではないだろう。 総じて、Dockerという技術を利用したいが何処から手を付ければよいのか…という人向けの教科書として良書である。