Dockerとは? 学習メモ

Dockerとは?

コンテナ型仮想化技術を実現するために実行される常駐アプリケーションと、それを操作するためのコマンドフロントインターフェースから成るプロダクトのこと。

アプリケーションのデプロイに特化しており、コンテナを中心とした開発・運用を可能にする。

コンテナ型仮想化技術

 従来の構造では、1台のパソコンに1つのOSが起動し、その上に様々なアプリケーションやソフトウェアが動いている構造だった。しかし、近年では仮想化技術を用いることで、1台のパソコンに複数のゲストOSを起動することが可能になった。

1つのホストOS上に複数のコンテナと呼ばれる独立空間を形成。そこでアプリケーションをそれぞれ構築することができる。この技術をコンテナ型仮想化と呼ぶ。

ホストOSとコンテナの間の仲介役を担うコンテナ管理ソフトウェアとして、Docker等が存在する。 

既存のコンテナ管理ソフトウェアと比較したDockerの優位点

  • Dockerは開発環境の準備だけではなく、その後の本番環境への展開や、アプリケーションのプラットフォームとして機能する
  • Dockerは軽量に動作する
  • Dockerは開発環境と本番環境をほぼ同等に再現できる優れたポータビリティを持つ

Dockerを利用する意義

  • 不変な実行環境による冪等性
  • 実行環境構築とアプリケーション構成のコード化
  • 実行環境とアプリケーションの一体化によるポータビリティ性の向上
  • システムを構成するアプリケーションやミドルウェアの構成管理の容易さ

 

学習教材

Docker/Kubernetes 実践コンテナ開発入門

著者  山田明憲

発行所 株式会社技術評論社

gihyo.jp