Docker入門講座を開催しようと考えています!

プログラミング#Docker
reoring
reoring
2015年10月14日 投稿
image.png (754.5 kB)

クラフトマンソフトウェアでは、Dockerを使ってShouldBeeを構築しています。そのノウハウを公開する入門講座を開催しようと考えています。
本講座のカリキュラムはまだ確定していないので、もし意見がありましたらガンガン言ってもらえるとありがたいです!

もし参加したいという!という方がいらっしゃいましたら、記事下部のコメント欄やメールにてご連絡いただけると非常に助かります。

以下、講座の内容です。

Docker入門講座

目的

このDocker入門講座の目的は、「インフラ構築の第一線で活躍するためのスキルを身につける」ことです。

単にDockerでの構築方法を学ぶだけでなく、

  • LinuxやTCP/IP、ネットワークの基礎理論
  • 仮想化や物理サーバといったインフラの基礎知識
  • 自分でDockerを使ったインフラの設計を考えるための設計方法

などについて学びます。

事前に必要な技術は、Linuxをセットアップできることです。

できるようになること

  • Dockerを使ったインフラの構築ができるようにある
  • 使い捨て可能でコードで表現されたサーバ環境が構築できるようになる
  • 再利用可能なサーバコンポーネントを適切な粒度で作れるようになる
  • サーバコンポーネントをデプロイできるようになる
  • ChefやAnsibleで行っている複雑なプロビジョニングを減らし、オーケストレーションに集中できるようになる

授業について

教材となるサンプルコードはGitHubにて公開します。

授業のスタイルとしては、講師がスライドで説明をして終わりではなく、皆様と一緒に1ステップずつ理解していくスタイルを基本としています。
講師は2名体制ですので、ついていけない方がいた場合はもう1ひとりの講師がヘルプします。

授業内容

TCP/IPの基礎

Dockerはそれ単体ではなくネットワークに繋り、通信してこそその真価を発揮できるため、TCPやIPといったネットワークの基礎を説明します。

Linuxの基礎

DockerはLinuxの上に構築されています。Dockerを操作するための基礎技術としてLinuxの基本を先に教えます。
Linuxの基礎では、基本的なコマンドやLinuxの動作原理の基本的な部分を噛み砕いて説明します。

コンテナ技術概論

DockerはLinuxのコンテナ技術であるLXCやcgroupを使って構築されています、Dockerの動作原理を理解することによって理解を深めます。

仮想化技術との違い

Dockerはよく仮想化技術の一部として説明されていますが、技術的に何が異るのかを明確にします。
これによって、仮想化が得意とする分野や、Dockerが向いている箇所が適切に判断できるようになります。

Dockerのインストール

DockerをLinuxにインストールして使用できる状態にします。
この際に簡単な操作を行って感触を掴みます。

Dockerひとめぐり

Dockerに登場する用語や概念、どういったコマンドがあるのかなど概要を説明します。

イメージとコンテナ

Dockerのイメージとコンテナについて詳細を教えます。
この部分は最初は混同してしまうため、丁寧に説明します。

イメージの構築

Dockerのイメージは様々なものがDocker標準のレジストリに用意されています。パブリックなDockerレジストリにはオープンソースのイメージも沢山あります。
しかし、こういったイメージを使うだけではなく自分独自のイメージを作成できるとChefなどのプロビジョニングツールで行っているような作業でDockerイメージを作成することができます。
ここでは、そのイメージの構築方法であるDockerfileや、作成したイメージをレジストリに入れたり取得したりする方法を説明します。

ボリューム

Dockerコンテナは起動して終了するとコンテナ内で作成されたデータは同じイメージでも次のコンテナになると消えてしまいます。
こういったデータを永続的に保存するための方法を説明します。

ネットワーク

Dockerコンテナでは、粒度の小さいサーバコンポーネントを多数起動します、そこでコンテナ同士をネットワークで接続し連携させるいくつかの方法を説明します。

独自レジストリの構築

Dockerには、Docker社が運営しているDockerHubという公式のレポジトリがあります。しかしこのレポジトリにはインターネットへの接続が必須となってしまいますし、非公開レポジトリには使用料が発生します。
そこでDockerレジストリを自分で構築し、使用する方法を教えます。

セキュリティ

Dockerでインフラを構築できるようになると、当然それを商用環境で使うかという判断が必要になります。
商用環境では十分なセキュリティを確保する必要があります。ここでは、Docker自体のセキュリティと、レジストリから確実に正しいコンテナを取得する方法を教えます。

Docker Tools

Dockerを小規模に使っているうちはdockerコマンドを使っても十分ですが、規模が大きくなってくると段々と不便になってきます。
そこでDockerが提供しているDocker Machine, Docker Swarm, Docker Composeといったツールの基礎と使用方法を教えます。

クラスタリング

多数のDockerコンテナを多数の物理ホストで動作させるためにはクラスタリングを管理しなければなりません。
ここでは、Apache Mesos、kubernetes、Consulといったクラスタ管理ツールの紹介と基本的な使用方法を説明します。

授業内容目次

TCP/IPの基礎
	IPアドレス
	ルーティング
	OSI参照モデル
Linuxの基礎
	基本コマンド
	Linuxカーネル
仮想化技術との違い
コンテナ技術とは
Dockerのインストール
Dockerひとめぐり
	概念
	用語
	Dockerコマンド
イメージとコンテナ
イメージの構築
ボリューム
ネットワーク
	リンク
	ホスト
	コンテナ間通信
	物理ホストが分割されているときのコンテナ間通信
	アンバサダパターン
独自レジストリの構築
セキュリティ
	TLS
	Trusted Registry
Docker Tools
	Docker Machine
	Docker Swarm
	Docker Compose
クラスタリング
	Mesos
	Consul
	kubernetes

開催日時

未定

定員

5〜10名

日数

  • 2〜3日
  • 1日6時間程度