Yuki's Tech Blog

仕事で得た知見や勉強した技術を書きます。

【さわって学ぶクラウドインフラ docker 基礎からのコンテナ構築】第1章 コンテナの仕組みと利点で知らなかったことをざっくりまとめてみた

目次

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イメージ」です。

  1. 基本的なLinuxディストリビューションだけのDockerイメージ
    UbuntuCentOSなどのLinuxディストリビューションだけで構成されている基本的なDockerイメージです。必要なものを追加でインストールして独自のコンテナを作成したい場合に使用します。
  2. アプリケーション入り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とは、 WindowsMacOSでDockerを動かすためのソフトウェアです。 Docker Desktopの内部にはLinuxカーネルが含まれており、WindowsMacOS上でDocker Desktopを実行すると、Linuxが実行され、その上でDockerを実行できます。

Docker Desktopのメリット

Docker Desktopのメリットは、サーバーで動かすのと同じDockerコンテナをローカルで実行できるところです。

Dockerのメリット・デメリット

メリット

  1. アプリケーション入りDockerイメージを使うと、システムを簡単に構築できる
  2. Dockerイメージを作成することで、複製を作りやすい

デメリット

  1. Linuxシステム上でしか動かない
  2. 仮想サーバーと違って、完全な分離ではない
    Dockerは隔離した空間でプログラムを実行する技術にすぎません。

参考記事

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 | 大澤 文孝, 浅居 尚 |本 | 通販 | Amazon

Dockerとは何か?初心者にもわかりやすく仕組みやメリットを解説 | キツネの惑星