この記事について
Dockerについて学習を始めたため、備忘録を残していきます。
Dockerとは?コンテナとは?
Docker:コンテナ技術の名称
コンテナ:互いに影響しない隔離された実行環境を提供する技術
隔離された実行環境のメリット
一台のサーバーで複数のシステムを実行する際の不都合が起こりにくい
- 同じサーバー上で動く複数システムが同じフレームワークを使っているケース
- 実行環境が隔離されていない場合:
いずれかのシステムでのフレームワークのアップデートの影響が他システムにも及ぶ - 実行環境が隔離されている場合:
コンテナごとに異なるバージョンのフレームワークを使用することができる
- 実行環境が隔離されていない場合:
ポータビリティ性がある
-
システムが動くのに必要なファイルはすべてそれぞれのコンテナ内に含まれる。
コンテナ外のものが参照されることがない特性を"ポータビリティ性"(持ち出し可能)という。⇨ ポータビリティ性があるため、コンテナを別のサーバーにコピーして動かすのが容易。
Dockerの構成要素
-
Dockerクライアント
Dockerデーモン(後述)と通信してDockerコンテナの構築・実行・配布を行う。
ユーザーは直接デーモンと通信せず、Dockerクライアントを通じて通信を行う。 -
Dockerホスト
- Dockerデーモン
メインのサーバ。イメージの管理・コンテナの起動や停止を行う。 - Dockerイメージ
システムを動かすのに必要なファイル群。 - Dockerコンテナ
Dockerイメージから作成されるマシンの実態。
- Dockerデーモン
-
レジストリ
Dockerイメージの保管システム。Docker公式はDocker Hub。
pullすることでイメージを誰でも使用することができる。
参考
書籍『さわって学ぶクラウドインフラ docker 基礎からのコンテナ構築』
https://docs.docker.jp/engine/understanding-docker.html (Docker公式サイト)