2014.11.01 dockerことはじめ
TRANSCRIPT
![Page 1: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/1.jpg)
Dockerことはじめ2014.11.01
これからはじめるDocker勉強会@ベースキャンプ名古屋
![Page 2: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/2.jpg)
![Page 3: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/3.jpg)
軽量、携帯可能な仮想化環境構築構築ツール!
Dockerを一言でまとめると…
![Page 4: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/4.jpg)
• 開発者やシステム管理者が分散アプリケーションを構築・移動・実行するための、オープンプラットフォーム
• 構成部品を使い、アプリケーションを素早く組み立てることを可能する
• 開発環境、本番環境の相違を排除する
What is Docker?
参考)https://www.docker.com/whatisdocker/
![Page 5: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/5.jpg)
• DevOps
• Immutable Infrastructure
Dockerの説明の前に…
![Page 6: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/6.jpg)
• Dev = Development(開発)Ops = Operations(運用)
• 開発(Dev)と運用(Ops)が連携、協力して開発を行う手法
• 開発(Dev)と運用(Ops)では、対立が多い(既存の本番環境に手を加えたくない…)
DevOps
機能追加、性能向上 安定稼働
![Page 7: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/7.jpg)
• 不変のインフラ構成
• 一度サーバを構築したら、変更しない
• サーバが必要になったら作り、不要になったら捨てる
• 開発環境も作って壊す→ いつでもキレイな環境→ その環境を丸ごと本番環境へ→ DevOpsに向いている
Immutable Infrastructure
![Page 8: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/8.jpg)
![Page 9: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/9.jpg)
• Linuxコンテナ
• Aufs(Another Union File System)
Dockerを支える技術
![Page 10: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/10.jpg)
• OSレベルでの仮想化ソフトウェア
• VPS事業者が採用している事も(OpenVZ, LXC)
• Docker 0.9からはLXC(Linux Containers)に変わって独自ライブラリ(libcontainer)を使用
Linuxコンテナ
![Page 11: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/11.jpg)
仮想化ツールといえば
![Page 12: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/12.jpg)
• 仮想環境の構築、制御を行うフロントエンドツール
• Vagrant自体に、仮想環境の機能は持っていない• VirtualBox, VMware, KVM などが担う
Vagrant
![Page 13: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/13.jpg)
• サーバー(ハイパーバイザ)型仮想化• KVM
• VirtualBox
• VMWare
• コンテナ型仮想化• OpenVZ
• LXC
• Docker
2つの仮想化
![Page 14: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/14.jpg)
2つの仮想化
物理マシン
ホストOS
仮想化ソフト / ハイパーバイザ
物理マシン
ホストOS
コンテナツール(Docker)
サーバー型 コンテナ型
独立した空間
仮想マシン
ゲストOS
アプリ
仮想マシン
ゲストOS
アプリ
アプリ
アプリ
アプリ
アプリ
![Page 15: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/15.jpg)
• コンテナ型仮想化は、ハードウェア、OSを仮想化していない(ホストと共有している)
☺ 必要なリソースが少ない
☺ パフォーマンスが良い(起動が早い)
😣 異なるOSは動かない
😣 OS(カーネル)に関する操作は出来ない
ざっくりまとめると
![Page 16: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/16.jpg)
• 差分管理可能なファイル管理システム
• LiveCD(KNOPPIX etc.)で採用
Aufs(Another Union File System)
![Page 17: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/17.jpg)
Aufs(Another Union File System)
C
B
B C
A
A’
A’
![Page 18: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/18.jpg)
Dockerの仕組み
https://docs.docker.com/terms/image/
![Page 19: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/19.jpg)
Dockerの仕組み
https://docs.docker.com/terms/image/
![Page 20: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/20.jpg)
![Page 21: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/21.jpg)
• Docker Hub Registry• Dockerのイメージを共有するWebサービス
• 自分で作ったイメージが共有できる
• Docker公式のイメージもある
• Dockerfile• コンテナの構築手順が書ける
Dockerそのほかの機能
![Page 22: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/22.jpg)
Docker Hub Registry
https://registry.hub.docker.com/
![Page 23: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/23.jpg)
Dockerfile
apt-get update && ¥apt-get -y upgrade && ¥apt-get install -y build-essential && ¥apt-get install -y software-properties-common && ¥apt-get install -y byobu curl git htop man unzip vim wget && ¥rm -rf /var/lib/apt/lists/*
![Page 24: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/24.jpg)
• 手軽に開発環境を構築!• Dockerでサーバをドカドカ立てるよ!
• 自動で環境を構築!
• 作った環境は簡単に移行!• イメージをコピーして開発環境→本番環境へ
• 使わなくなった本番環境はそのままポイ
• まさにDevOps!
まとめ(個人の感想)
![Page 25: 2014.11.01 Dockerことはじめ](https://reader034.vdocuments.pub/reader034/viewer/2022042701/55a05fdd1a28ab3c2e8b46d8/html5/thumbnails/25.jpg)