「Docker」とは
仮想化ソフトウェア、非常に動作が軽量なコンテナ型のアプリケーション実行環境のこと
Dockerの仕組み
コンテナ型仮想化(Docker)
コンテナはホストOSから見ると単一のプロセスとして扱われ、カーネル部分をホストOSと共有するため、リソース使用量が非常に少ない
仮想的な動作環境をホスト型仮想化より少ないコンピュータリソースで実現する環境を構築する
メリット
1. アプリケーションを少ないリソースで効率良く実行できる
2. 「Infrastructure as Code」によってインフラ環境のバージョン管理ができる
「Infrastructure as Code」‥インフラ環境の状態をソースコードとして管理し、その内容を自動的にサーバーへ設定する仕組み
Dockerはイメージの構成を「Dockerfile」、コンテナの構成を「docker-compose.yml」というテキストファイルに記述できる ため、gitなどのバージョン管理システムでインフラ環境の状態を記録することができる。
3. 「Immutable Infrastructure」を実現することができる
「Immutable Infrastructure」‥アプリの実行環境を使い捨てとし、環境を都度作り直すことにより構成変更を行う方法
いつでも古い状態のサーバーを廃棄して「パッチのつぎはぎがない綺麗な状態」のサーバーを再構築することができます。
imageとコンテナ
Dockerイメージ
「Dockerイメージ」とはOSやアプリケーションを含んだテンプレートのこと。
コンテナ
「Dockerコンテナ」は元となるDockerイメージから生成された仮想サーバーです。
Dockerコンテナはホストマシン上の一つの プロセス として実行されます。
Docker composeとは
Docker Composeとは複数のDockerコンテナを定義し実行するDockerアプリケーションのためのツールです。
つDockerコンテナを楽にまとめて起動したい時に使う