Dockerとは? 学習メモ
Dockerとは?
コンテナ型仮想化技術を実現するために実行される常駐アプリケーションと、それを操作するためのコマンドフロントインターフェースから成るプロダクトのこと。
アプリケーションのデプロイに特化しており、コンテナを中心とした開発・運用を可能にする。
コンテナ型仮想化技術
従来の構造では、1台のパソコンに1つのOSが起動し、その上に様々なアプリケーションやソフトウェアが動いている構造だった。しかし、近年では仮想化技術を用いることで、1台のパソコンに複数のゲストOSを起動することが可能になった。
1つのホストOS上に複数のコンテナと呼ばれる独立空間を形成。そこでアプリケーションをそれぞれ構築することができる。この技術をコンテナ型仮想化と呼ぶ。
ホストOSとコンテナの間の仲介役を担うコンテナ管理ソフトウェアとして、Docker等が存在する。
既存のコンテナ管理ソフトウェアと比較したDockerの優位点
- Dockerは開発環境の準備だけではなく、その後の本番環境への展開や、アプリケーションのプラットフォームとして機能する
- Dockerは軽量に動作する
- Dockerは開発環境と本番環境をほぼ同等に再現できる優れたポータビリティを持つ
Dockerを利用する意義
- 不変な実行環境による冪等性
- 実行環境構築とアプリケーション構成のコード化
- 実行環境とアプリケーションの一体化によるポータビリティ性の向上
- システムを構成するアプリケーションやミドルウェアの構成管理の容易さ
学習教材
Docker/Kubernetes 実践コンテナ開発入門
著者 山田明憲
発行所 株式会社技術評論社