#Dockerについて
コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンソフトウェアあるいはオープンプラットフォームである。(wikipediaより)
コンテナ?仮想化?何それ状態だと思います。次にそれらについて解説します。
##コンテナとは
OS上に区画を作り、アプリケーションを動作させるために必要なライブラリやアプリケーションなどを一つにまとめたものである。
##仮想化とは
コンピュータリソースを抽象化することである。
コンピュータそのものをハードウェアからソフトウェア化することを目指す。
##Dockerのメリット
まずよく比較されるサービスとしてVMwareやVirtualBoxなどの仮想マシンがあります。
こちらがメリットです。
- 簡単に環境開発
- 軽量でスピーディーな開発
- ハードウェアの資源削減
- 共有化されたシステム
- イミュータブル・インフラストラクチャである点
- 物理サーバの考慮を後回しにできる点
- モダンなエコシステム
###Dockerのデメリット
- 同一のOSを利用しなければならない
- 提供できるホストの種類が少ない
- Windowsでの利用ハードルの高さ
##仮想マシン(VMware・VirtualBox)について
ここからしばらくDockerから少し離れるので気になる方以外は飛ばしてください。
###仮想マシン
仮想マシン技術による仮想化の方式としてホストOS型****ハイパーバイザー型があります。
####ホストOS型
本来入っているOS(WindowsやMac・Linux)上で仮想化ソフトを使い、その上で仮想マシンを立ち上げる方法。
#####メリット
・ホストOSが対応していれば、ハードウェア環境にほぼ依存しない。
・管理マシンを必要としない。
・ハイパーバイザー型と比べて手軽に環境構築が可能。
#####デメリット
・ホストOSが必要な点
・物理リソースが必要な点
####ハイパーバイザー型
サーバへ直接インストールし仮想マシンを稼働させる方法
#####メリット
・ リソースを有効活用できる点
・システムにかかるコストを削減
#####デメリット
・ 運用コストが割高になる可能性
・ 種類によっては知識や技術が必要な点
(高度な管理を実現するためのツールが標準装備されていない可能性があるため。)
#####デメリット
見にくいと思うので、表にしてまとめてみます。
仮想マシン | コンテナ技術 | |
---|---|---|
起動 | 遅い(パフォーマンスによる) | 早い |
OS | 各仮想マシンに付き一つ | 一つで複数稼働可能 |
コスト | 大きい | 小さい |
構成 | ハードウェアに依存 | ハードウェアに依存しない |
メモリ消費 | 大きい | 小さい |
続けてDockerでよく使われる言葉について説明します。
##Dockerでよく使われるワード
###Dockerイメージ
OSやアプリケーションを含んだテンプレートのベースイメージ。読み取り専用。
構築(build)コンポーネント
###Dockerコンテナ
分離された名前空間とアプリケーションの実行環境
実行(run)コンポーネント
###DockerHub(Dockerレジストリ)
公開されているDockerイメージを提供しているプラットフォーム
配布(distribution)コンポーネント
###Dockerクライアント
ユーザがコマンドを反抗し、Dockerデーモンと通信を行う
###Dockerデーモン
ホストマシン上で動いている。直接ユーザとはやりとりはしない。管理者的な役割を果たす。
次回は実際にDockerを動かしていきます。