目次
- 目次
- Dockerとは
- コンテナとは
- 従来の仮想化技術とコンテナの違い
- Docker Engineとは
- Dockerイメージとは
- Dockerレジストリとは
- Docker Desktopとは
- Dockerのメリット・デメリット
- 参考記事
Dockerとは
Dockerとは、コンテナ技術を実現するためのソフトウェアです。 Dockerは、Docker EngineをインストールしたLinux環境で動作します。
コンテナとは
コンテナとは、 ざっくり言うと、アプリケーションの実行に必要なプログラムやライブラリ、各種設定ファイルなどをひとまとめにして、隔離して実行するための仕組みまたは空間のことです。
コンテナのメリット
コンテナのメリットは、コンテナ自体をコピーして別のコンピュータで動かせることです。また、Dockerコンテナを使うことで、なんでもひとまとめにして、Docker Enginさえあればすぐに実行することができます。
従来の仮想化技術とコンテナの違い
従来の仮想化技術ではゲストOSが必要でした。コンテナの場合、ゲストOSは必要ではありません。そのため、OSのリソースを使わないのでリソースの節約になります。コンテナ環境ではOSは共通で利用して、アプリが使用するCPU・メモリ・ファイル・プロセス等はそれぞれのコンテナで管理します。
以下の画像がわかりやすかったので引用させていただきます。
↓ 画像引用(コンテナとは何か解説、従来の仮想化と何が違う?DockerやKubernetesとは?)
Docker Engineとは
Docker Engineとは、「Dockerイメージ」や「Dockerコンテナ」を制御するためのプログラムです。 DockerはLinux上で動作するソフトウェアです。Linuxに「Docker Engine」をインストールすると、Dockerのコンテナ(Dockerコンテナと呼ぶ)を実行できるようになります。
(※) Docker Engineをインストールしたコンピュータを「Dockerホスト」と呼びます。
(注) Docker Desktopというソフトウェアを利用すれば、Linux環境にしなくても、Mac環境やWindows環境で動かすことができます。
Dockerを操作するためのdockerコマンド・Docker Composeコマンド
Dcoker Engineには、コンテナを操作する様々なインターフェース(dockerコマンド or Docker Composeコマンド)が備わっています。
Dockerイメージとは
Dockerコンテナを一から作るのは、必要なライブラリ、フレームワーク、コマンドなどをインストールする必要があるので結構めんどくさいです。そのため、Dockerコンテナを作る場合、Dockerイメージを元にコンテナを作成します。Dockerイメージとは、 コンテナを作成するために必要なファイルを全てまとめてパッケージ化したものです。
Dockerイメージの種類
Dockerイメージは2種類存在します。 「基本的なLinuxディストリビューションだけのDockerイメージ」と「アプリケーション入りDockerイメージ」です。
- 基本的なLinuxディストリビューションだけのDockerイメージ
UbuntuやCentOSなどのLinuxディストリビューションだけで構成されている基本的なDockerイメージです。必要なものを追加でインストールして独自のコンテナを作成したい場合に使用します。 - アプリケーション入りDockerイメージ
アプリケーション入りDockerイメージは、 既にアプリケーションがインストールされていて、すぐに使えるDockerイメージです。 ApacheやNginx、MySQLなどが既にインストールされているDOckerイメージなど様ざまな種類が存在します。
Dockerレジストリとは
Dockerレジストリとは、 Dockerイメージを管理しているサーバーのことです。 Dockerレジストリの代表的な例は、Docker Hubです。Dockerレジストリは「Dockerリポジトリ」という単位でイメージを管理します。
Dockerでは、Dockerレジストリ上で管理されているDockerリポジトリに登録されているDockerイメージをダウンロードして、ダウンロードしたDockerイメージからDockerコンテナを作成します。
(※) Docker Hubでは、公式のオフィシャルイメージと、個人や団体などが自由に登録できる非オフィシャルイメージの2種類が提供されています。
Docker Desktopとは
Docker Desktopとは、 WindowsやMacOSでDockerを動かすためのソフトウェアです。 Docker Desktopの内部にはLinuxカーネルが含まれており、WindowsやMacOS上でDocker Desktopを実行すると、Linuxが実行され、その上でDockerを実行できます。
Docker Desktopのメリット
Docker Desktopのメリットは、サーバーで動かすのと同じDockerコンテナをローカルで実行できるところです。
Dockerのメリット・デメリット
メリット
- アプリケーション入りDockerイメージを使うと、システムを簡単に構築できる
- Dockerイメージを作成することで、複製を作りやすい
デメリット
- Linuxシステム上でしか動かない
- 仮想サーバーと違って、完全な分離ではない
Dockerは隔離した空間でプログラムを実行する技術にすぎません。
参考記事
さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 | 大澤 文孝, 浅居 尚 |本 | 通販 | Amazon