Dockerの特徴ツイートシェアはてなこちらで仮想化技術の話をしました。(仮想環境とは)ここでは仮想化を実現する技術としてホスト型、ハイパーバイザー型を紹介しました。ホスト型ではホストOSの上、ハイパーバイザー型ではハードウェアの上に仮想化ソフトを導入し、仮想環境を作るという仕組みでした。仮想化ソフトウェアの介在による、障害発生時の問題の切り分けの複雑化など問題がありました。これらを解決する仮想化技術としてコンテナ型(仮想化技術)があります。コンテナ型仮想化技術とはコンテナ型仮想化技術というのはコンテナを使い実行環境を他のプロセスから隔離し、その中で実行させるものです。コンテナとは、アプリケーションそのものや動作に必要となるあらゆるものを対象とし、区画化した空間をいいます。要は、コンテナはアプリケーションが稼働できる実行環境をまとめた区画です。ハイパーバイザー型やホスト型などでは仮想マシン上でゲストOSを起動する必要があるのに比べ、ゲストOSを起動することなく、アプリケーション実行環境を構築することが可能なのがコンテナ型技術の大きな特徴です。コンテナ型技術のメリット仮想マシンよりも軽量で起動が速いコンテナで起動させるOSはひとつなので負荷が小さく高速な動作を実現サーバーのメモリ負荷が軽減される必要最小限のCPUやメモリしか使用しない手軽に作成、削除できる上記のように軽量なので、必要になった時だけ作成するという使い方が一般的である。Codeと呼ばれる)コンテナ型技術のデメリット仮想サーバーごとに個別のOSが選択できない運用に注意が必要ホストOSリソースを共有するため、リソースの制限が不十分であるコンテナがデプロイされた場合、他コンテナに影響を与える可能性があるコンテナ技術でなにができるのか?コンテナを利用することで、メリットの5で述べたようにアプリケーションが最終的にどこにデプロイされても一貫性が保証されます。環境構築作業の手間や新規メンバー参加のコスト削減といった環境が変化する際における問題を減らし様々な手間を削減することができます。システム資源の負担は大きいが、自由度が高い仮想マシンと、システム資源の負担は小さく、軽量で高速だがOSの自由がきかないコンテナを使い分けることが重要です。Containerなどがあります。コンテナ管理ソフトウェアではDockerが圧倒的なシェアを占めています。DockerについてDockerはDocker社が開発しているコンテナ型の仮想環境を提供するためのプラットフォームです。Dockerは主に3つの機能を持ちます。Dockerイメージの作成コード、ライブラリ、OSなど、アプリケーションに必要なひつまとめをDockerイメージとして作成します。Dockerfileから作成するかコマンドラインで作成することができます。Hubを利用しイメージを管理します。Dockerコンテナの実行Dockerイメージをビルド、コンテナとして実行することができます。