💫

dockerさんとは~コンテナ仮想化システムとは~

2021/01/30に公開

はじめに

くーばねてすをやっつけるためにこれまでにLinuxさんとAWSさんと仲良くさせていただいたが、新たなステージに上がるためについにdockerさんに会いに行くことにした。dockerさんと仲良くなることでコンテナシステムの仕組みの理解とくーばねてすを倒すための調査をする。

概要

■dockerとは
■なぜコンテナ化するのか
■コンテナ化の使えないところ

をまとめた!(^_-)-☆

■dockerとは

Dockerは、コンテナ仮想化技術を用いてアプリケーションを開発・配置・実行するためのオープンソースソフトウェアだ。

昔であればシステムを構築するとなると、1台の物理サーバを設置し、その上に1つのシステムを作るオンプレミス型でないと作れなかった。

続いて登場したのが、1台の物理サーバの上に複数のシステムを構築する「プライベートクラウド」や、物理サーバにVMwareをはじめとする仮想化ソフト(※)などをインストールし、複数のサーバーを構築できる「パブリッククラウド」だ。
※サーバーの仮想化を実現するのに必要な仮想化ソフトウェア

コンテナ仮想化とは、1つのホストOS上にカーネルをホストと共有しプロセス・ファイルシステムを隔離する複数の「コンテナ」と呼ばれる独立空間を形成して、アプリケーションをそれぞれに構築、管理することができるシステムだ。
↓従来のシステム管理(パブリッククラウド型)

↓コンテナ型システム管理

↓分かりづらいけどサーバーでコンテナ化管理するということ。

■なぜコンテナ化するのか

なぜコンテナ化をすると構築、管理がしやすくなるのか。色々な理由があるらしい('_')
①資源を節約できる
これまでは複数のシステムを構築するのに仮想環境毎にOSを丸ごとインストールする必要があり、アプリケーションとは直接関係の無いライブラリやデータ、ファイルをインストールしなければならなかった。メモリを無駄に使い、起動時間もかかるため、資源を浪費していた。
しかし、コンテナ化により仮想環境を一つのホストOS上で独立させることにより、ホストOSのカーネルを共有できるようになった。
②環境構築を高速化する
OSを共有して利用するので、これまで必要であったOSごとの設定を省くことができ、システムを構築するために必要となる最低限のプログラムだけインストールすればよい。
また、メモリの使用量が少なく済むためサーバへの負荷が低く、1度に多くのプログラム処理を実装することができる。
③設定間違いなどを修正しやすくなる
システムの修正は複数であると動作の影響範囲の特定などに時間がかかり、復旧に時間がかる可能性がある。 Dockerでは、修正がうまくいかなかったシステムはコンテナごとに仮想環境が独立しているので瞬時に削除してしまえばよい。
④コンテナ設定を再利用できる
1度作成したコンテナは、イメージを作成することができるので、イメージつかって他のコンテナでも同じものを再構築することができる。なので作業時間の大幅な短縮が実現できる。

■コンテナ化の使えないところ

①複数のホストでのコンテナ運用が複雑になる
②カーネルを他のコンテナと共有するため、個別に変更できない
③コンテナ環境でベースとなるOSと異なるOSのシステムを動かすことはできない

まとめ

コンテナ化の歴史を調べてみて、「便利な世の中になったもんだ」とおもった(>_<)
コンテナ化していると構築、管理が楽になりそうなきがする。

Discussion