0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerとはなにか

Posted at

本記事の概要

この記事はDocker初学者の私が、Dockerの概要についてまとめた記事です。
学習に当たっては以下の書籍を参考にしました。

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

コンテナ技術の概念から簡易的なWebアプリの構築等、実践的な内容まで含まれております。
また、DockerやKubernetesの設計や運用における勘所についても記載があり、勉強になる書籍でした。

本記事で分かること

  • コンテナ技術の概要
  • Dockerとはなにか

コンテナ技術の概要

Dockerの説明に入る前に、そもそもコンテナとは何かについて説明します。

コンテナとは仮想化技術のうちの1つです。
コンテナ以外の仮想化技術には、ホストOS型(Virtual Box等)、ハイパーバイザー型(ESXi等)があります。

図で表すとこうです。

コンテナ型

Container.jpg

ホストOS型

Host.jpg

ハイパーバイザー型

Hypervisor.jpg

コンテナ型では仮想化ソフトウェアなしにOSのリソースを隔離し仮想OSにします。この仮想OSをコンテナと呼びます。
コンテナを作り出すためのオーバヘッドは、他の仮想化ソフトウェアと比較して少ないため、高速に起動・終了ができ、必要なマシンリソースも少なくて済むことが特徴です。

コンテナ技術の歴史

コンテナ技術自体はDockerが台頭する前から存在しています。Dockerが登場する前はLXC(Linux Container)が有名でした。
DockerにはLXCと比較して以下の特徴があります。

  • ホストに左右されない実行環境(Docker Enginによる実行環境の標準化)
  • DSL(Dockerfile)によるコンテナの構成やアプリケーションの配置定義
  • イメージのバージョン管理
  • 差分ビルドが可能
  • Dockerレジストリ(イメージ保管サーバのようなもの)

DockerではDockerfileによりコンテナ情報をコードで管理できます。そのため環境の再現性を保ちやすいことが特徴です。また、Docker以前はアプリケーションをホストOSもしくはゲストOS上へデプロイしていたため、デプロイ先の実行環境(OS)への依存度が高かったです。
しかしDockerでは、実行環境を同梱してデプロイするため依存問題を解消しています。

Dockerとはなにか

アプリケーションを開発、移動、実行するためのプラットフォームです。
アプリケーションをインフラから分離し、アプリケーションを扱うようにインフラを扱えます。
具体的にはDockerfileと呼ばれるファイルで、コンテナの環境設定をコードで記述、管理します。

Docker Enginとは

Docker Enginとは、ざっくりいうとコンテナを管理するための仕組みです。
もう少し詳しく言うと、3つのコンポーネントで構成されるクライアント / サーバー型アプリケーションであり、dockerクライアント、dockerデーモン、REST APIで構成されます。

DockerEngin.jpg
dockerクライアントにて、コンテナの構築などを実行するためにはdockerデーモンと通信します。その通信をREST APIを通じて行います。

Dockerが動く仕組み

dockerクライアントとdockerデーモンが通信することで動くわけなのですが、もう少し詳しく見てみます。
コンテナを構築するためにはイメージと呼ばれるテンプレートが必要です。例えば、Ubuntuの上にApacheをインストールしてWebサーバーを構築するとします。その際必要なUbuntuとApacheのイメージをレジストリと呼ばれるイメージの保管サーバからダウンロードし、コンテナを構築します。

Docker_Architecture.jpg

パブリックなレジストリとしてはDocker Hubがあり、多種多様なイメージが存在します。
プライベート環境にレジストリが必要な場合は、Docker Registryを使うといいでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?