7
10

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基礎用語まとめ

Last updated at Posted at 2021-07-16

基礎用語

Docker学習に際し、基礎的な理解が足りていなかったため用語集としてまとめました。
かなりシンプルな内容なので、Dockerの概要を用語で把握・確認するためのものになります。

Dockerイメージ

Dockerコンテナを作成するための雛形になるもの。
親子関係を持つ、複数のイメージ・レイヤによって構成されており、アプリケーション、ライブラリ、設定ファイルなどのアプリケーション実行に必要なもの一式をまとめたもの。
主にDockerfileがイメージを作成するための指示書にあたる。

Dockerコンテナ

Dockerイメージをもとに作成されるコンテナ型仮想環境のこと。
Dockerコンテナまたは、単にコンテナと呼ばれることがある。

Dockerエンジン

コンテナ型仮想環境構築などの機能を提供するDocker内部のコアとなる機能。

Docker Engine … 軽量かつ強力なオープンソースによりコンテナ化(containerization)を行う技術。アプリケーションの構築とコンテナ化を行うワークフローを実現します。

Docker Engine について

Dockerデーモン

ユーザーからのDockerコマンドによる命令を実行し、コンテナの起動や再起動、停止などの管理をしているDockerの常駐型プログラム。

Docker デーモン
上図で見たように、Docker デーモンはホストマシン上で動きます。ユーザは直接デーモンと通信せず、Docker クライアントを通して行います。

Docker概要

Dockerクライアント

利用者がDockerに指示を出すためのクライアントソフトのことを指す。
一般的にはDockerコマンドを用いて、Dockerに指示を出し、コンテナの実行・構築・配布などを行う。

Docker クライアント は Docker デーモン と通信することで、Docker コンテナの構築・実行・配布といった力仕事をします。 Docker クライアントとデーモンのいずれも同じシステム上でも実行できます。 あるいは、Docker クライアントはリモートの Docker デーモンに接続することも可能です。

アーキテクチャの理解

Docker Hub

Dockerイメージを保存、管理しているサービス。
公開されているイメージをダウンロードすることで、イメージをもとにしたコンテナ型仮想環境を構築することができる。
このようにDockerイメージを管理している場所をレジストリと言う。
同様のサービスではDocker Hubの他にQuay.ioなどがある。

Quay.io

リポジトリ

Dockerイメージを保管するための入れ物。
このリポジトリの作成など、リポジトリを管理するサービスをレジストリと言う。

ビルド(build)

Dockerfileからイメージを作成すること

ビルド(build)とは、 を使って Docker イメージを構築する工程です。構築には、 Dockerfile と「コンテクスト」(内容物の意味)を使います。コンテクストとは、イメージ構築に必要なディレクトリに置いてあるファイル群です

ビルドコンテキスト

Dockerイメージをビルドする際に、Dockerデーモンに送信されるホストOSのディレクトリのことを指す。

docker buildコマンドを実行したときの、カレントなワーキングディレクトリのことを ビルドコンテキスト(build context)と呼びます。 デフォルトで Dockerfile は、カレントなワーキングディレクトリにあるものとみなされます。 ただしファイルフラグ(-f)を使って別のディレクトリとすることもできます。 Dockerfileが実際にどこにあったとしても、カレントディレクトリ配下にあるファイルやディレクトリの内容がすべて、ビルドコンテキストとして Docker デーモンに送られることになります。

Dockerfile ベストプラクティス

注意点として、Dockerデーモンに送信されるビルドコンテキスト上のファイルは必要最低限に留めておく必要があります。

ビルドコンテキスト上のファイルはビルド時に全てDockerデーモンに送信されてしまうため、ファイルサイズが大きいとビルドの時間が長くなってしまうからです。

ビルドキャッシュ

Dockerイメージをビルドした際に一時保存されるキャッシュ。

このビルドキャッシュのおかげで、Dockerfileを元にしたビルド内容に差がない場合には、2回目以降は初回よりも早くビルドが完了する。

なお
Dockerfileや関連ファイルに変更があった場合には、ビルドキャッシュが使用されずに再度ビルドが行われます。

aufs

Dockerイメージをどのようにストレージに保存するかを管理するソフトウェア

aufs (advanced multi layered unification filesystem;複数のレイヤを統合した、高度なファイルシステム、の意味)は Linux の ファイルシステム であり、ストレージ用のバックエンドとして Docker がサポートします。

アーキテクチャ

こちらにかなりわかりやすいイラストがあったので引用させていただきました。
全体の流れや機能ごとの関係性を理解できると思います。
Docker のアーキテクチャとは?

image.png

Docker はクライアント・サーバ型のアーキテクチャです。Docker クライアント が Docker コンテナの構築・実行・配布といった力仕事をするには、 Docker デーモン と通信します。 Docker クライアントとデーモンは、どちらも同じシステム上でも実行できます。あるいは、Docker クライアントはリモートの Docker デーモンに接続するのも可能です。Docker クライアントとデーモンは、お互いにソケットもしくは RESTful API を経由して通信します。

終わりに

かなり基礎的な内容になりますが、学習の参考になれば幸いです。

7
10
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
7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?