コンテナ型仮想化ソフトウェア「Docker」
![](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
コンテナ型仮想化ソフトウェア「Docker」
Dockerとは
- Dockerはコンテナの実行やコンテナイメージの作成・配布を行うためのプラットフォーム
Dockerが注目される理由
- Dcokerはコンテナ化されたアプリケーションのプラットフォームとしてデファクトスタンダードの地位を築いている
- Dockerはオンプレミスからクラウドへ容易に移行できるポータビリティーに加、高い可用性やスケーラビリティーを備えたアプリケーションを開発しやすい点が評価された
Dockerコンテナ
- コンテナはOS上で実行されているプロセス
- 名前空間の仕組みによってコンテナは外部から隔離されている
- コンテナはOSを共有しているためOSのバージョンの違いや互換性によっては正しく動作しない場合がある
コンテナイメージ
- コンテナイメージはコンテナを実行するためのテンプレート
- コンテナイメージにはコンテナの実行に必要なファイルシステムが含まれる
- コンテナイメージはコンテナの作成手順を記述したDockerfileを使用して自動で作成することが多い
- コンテナイメージはコンテナレジストリと呼ばれるコンテナイメージの保管場所を介して配布する
コンテナのライフサイクル
- ライフサイクルはコンテナが作成されてから削除されるまでの流れ
- コンテナは作成・実行・停止・ポーズ・削除の状態をとりえる
- コンテナの状態はDockerコマンドの実行などをトリガーにして変化する
Dockerデーモン
- DockerデーモンはDockerクライアントからの要求に応じてDockerオブジェクトを管理する
- DockerオブジェクトはDockerデーモンの管理対象となるものであり、コンテナやコンテナイメージが含まれる
- DockerデーモンはDockerクライアントからの要求を受け入れるためのAPIを備えている
コンテナとプロセス
- Dockerではプロセスごとにコンテナを分けることが推奨されている
- ボリュームはコンテナによって読み書きされるデータを永続化するための仕組み
- ボリュームを利用すれば複数のコンテナでファイルシステムを共有することが可能