2014.11.01 dockerことはじめ

Post on 11-Jul-2015

337 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Dockerことはじめ2014.11.01

これからはじめるDocker勉強会@ベースキャンプ名古屋

軽量、携帯可能な仮想化環境構築構築ツール!

Dockerを一言でまとめると…

• 開発者やシステム管理者が分散アプリケーションを構築・移動・実行するための、オープンプラットフォーム

• 構成部品を使い、アプリケーションを素早く組み立てることを可能する

• 開発環境、本番環境の相違を排除する

What is Docker?

参考)https://www.docker.com/whatisdocker/

• DevOps

• Immutable Infrastructure

Dockerの説明の前に…

• Dev = Development(開発)Ops = Operations(運用)

• 開発(Dev)と運用(Ops)が連携、協力して開発を行う手法

• 開発(Dev)と運用(Ops)では、対立が多い(既存の本番環境に手を加えたくない…)

DevOps

機能追加、性能向上 安定稼働

• 不変のインフラ構成

• 一度サーバを構築したら、変更しない

• サーバが必要になったら作り、不要になったら捨てる

• 開発環境も作って壊す→ いつでもキレイな環境→ その環境を丸ごと本番環境へ→ DevOpsに向いている

Immutable Infrastructure

• Linuxコンテナ

• Aufs(Another Union File System)

Dockerを支える技術

• OSレベルでの仮想化ソフトウェア

• VPS事業者が採用している事も(OpenVZ, LXC)

• Docker 0.9からはLXC(Linux Containers)に変わって独自ライブラリ(libcontainer)を使用

Linuxコンテナ

仮想化ツールといえば

• 仮想環境の構築、制御を行うフロントエンドツール

• Vagrant自体に、仮想環境の機能は持っていない• VirtualBox, VMware, KVM などが担う

Vagrant

• サーバー(ハイパーバイザ)型仮想化• KVM

• VirtualBox

• VMWare

• コンテナ型仮想化• OpenVZ

• LXC

• Docker

2つの仮想化

2つの仮想化

物理マシン

ホストOS

仮想化ソフト / ハイパーバイザ

物理マシン

ホストOS

コンテナツール(Docker)

サーバー型 コンテナ型

独立した空間

仮想マシン

ゲストOS

アプリ

仮想マシン

ゲストOS

アプリ

アプリ

アプリ

アプリ

アプリ

• コンテナ型仮想化は、ハードウェア、OSを仮想化していない(ホストと共有している)

☺ 必要なリソースが少ない

☺ パフォーマンスが良い(起動が早い)

😣 異なるOSは動かない

😣 OS(カーネル)に関する操作は出来ない

ざっくりまとめると

• 差分管理可能なファイル管理システム

• LiveCD(KNOPPIX etc.)で採用

Aufs(Another Union File System)

Aufs(Another Union File System)

C

B

B C

A

A’

A’

Dockerの仕組み

https://docs.docker.com/terms/image/

Dockerの仕組み

https://docs.docker.com/terms/image/

• Docker Hub Registry• Dockerのイメージを共有するWebサービス

• 自分で作ったイメージが共有できる

• Docker公式のイメージもある

• Dockerfile• コンテナの構築手順が書ける

Dockerそのほかの機能

Docker Hub Registry

https://registry.hub.docker.com/

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/*

• 手軽に開発環境を構築!• Dockerでサーバをドカドカ立てるよ!

• 自動で環境を構築!

• 作った環境は簡単に移行!• イメージをコピーして開発環境→本番環境へ

• 使わなくなった本番環境はそのままポイ

• まさにDevOps!

まとめ(個人の感想)

top related