用語集¶
Docker プロジェクト界隈で使われる用語の一覧です。
aufs¶
aufs (advanced multi layered unification filesystem;複数のレイヤを統合した高度なファイルシステム、の意味)は、Docker がストレージ用のバックエンドとしてサポートする Linux の ファイルシステム です。
ベース・イメージ(base image)¶
親イメージを持たないイメージを、 ベース・イメージ と呼びます。
boot2docker¶
boot2docker (ブート・トゥ・ドッカー)は Docker コンテナの実行に特化した Linux ディストリビューションです。Mac および Windows 向けの boot2docker は、Docker Toolbox のインストールに含まれる docker-machine
に置き換えられました。
btrfs¶
btrfs (B-tree file system;ビー・ツリー・ファイルシステム、バター・エフエス)は、Docker がストレージ用のバックエンドとしてサポートする Linux の ファイルシステム です。
ビルド(build)¶
ビルド(build)とは、 Dockerfile を使って Docker イメージを構築する方法です。構築時には Dockerfile と「コンテキスト」(内容物の意味)を使います。コンテキストとは、イメージ構築に必要なファイル群が置かれているディレクトリです。
cgroups¶
cgroups (control groups;コントロール・グループ)は Linux カーネルの機能であり、プロセスの集合が使うリソース(CPU、メモリ、ディスク I/O、ネットワーク等)を制限・計算・隔離します。Docker はリソース上限の管理と隔離に cgroups を使います。
cgroups の別名:control groups
Compose¶
Compose (コンポーズ)は、Docker で複雑なアプリケーションの実行と定義をするツールです。Compose を使えば、1つのファイルに複数のコンテナ・アプリケーションを定義しておき、コマンドを1つ実行するだけで、アプリケーションを使うために必要な全てを実行します。
Compose の別名: docker-compose、fig
コンテナ¶
コンテナ(container)は docker イメージ を実行するときの実体(runtime instance)です。
Docker コンテナには、次のものを含みます。
- Docker イメージ
- 実行環境
- 命令の標準セット
Docker コンテナの概念は、輸送用のコンテナから拝借したものです。コンテナは物を世界的に輸送するために標準が定義されています。Docker はソフトウェアを送るための標準を定義しています。
データ・ボリューム¶
データ・ボリューム(data volume)は、コンテナ内部でユニオン・ファイル・システムを迂回するため特別に設計されたディレクトリです。データ・ボリュームは長期的なデータ保管のために設計されており、コンテナのライフサイクルからは独立しています。そのため、コンテナを削除してもボリュームが自動的に消されることは有り得ませんし、コンテナから参照されなくなったボリュームが「掃除」(garbage collect)されることもありません。
Docker¶
Docker (ドッカー)には次の意味があります。
- Docker プロジェクト全体を指す言葉であり、開発者やシステム管理者がアプリケーションを開発・移動・実行するためのプラットフォームです。
- ホスト上で動く docker デーモンプロセスであり、イメージとコンテナを管理します。
Docker Hub¶
Docker Hub (ドッカー・ハブ)は Docker とこのコンポーネントで動くリソースを集めた場所です。以下のサービスを提供します。
- Docker イメージを預かる(ホスティング)
- ユーザ認証
- イメージの自動構築と、構築トリガ(build triggers)やウェブ・フック(web hooks)のようなワークフロー・ツール
- GitHub と Bitbucket との統合
Dockerfile¶
Dockerfile(ドッカーファイル)はテキスト形式のドキュメントであり、通常 Docker イメージを構築するために手動で実行が必要になる全てのコマンドを含みます。Docker は Dockerfile の命令を読み込み、自動的にイメージを構築します。
ファイルシステム¶
ファイルシステムとは、オペレーティング・システムがファイルに名前を付け、かつ、効率的な保管と修正のためにファイルに場所を割り当てます。
例:
- Linux : ext4, aufs, btrfs, zfs
- Windows : NTFS
- OS X : HFS+
イメージ¶
Docker イメージは コンテナ の元です。イメージとはルート・ファイルシステムに対する変更を並べ集めたもので、コンテナを実行する間に使われる実行パラメータに相当します。典型的なイメージはユニオン・ファイル・システムの層(スタック)がお互いに積み重なっています。イメージは状態を保持せず、変更もできません。
libcontainer¶
libcontainer(リブコンテナ)は Go 言語のネイティブな実装であり、名前空間・cgroup・機能・ファイルシステムへのアクセス管理を持つコンテナを作成します。コンテナを作成後、コンテナに対してライフサイクル上の追加操作を可能にします。
libnetwork¶
libnetwork(リブネットワーク)は Go 言語のネイティブな実装であり、コンテナのネットワーク名前空間や他のネットワーク・リソースを作成・管理します。コンテナを作成後、コンテナに対してライフサイクル上の追加操作を可能にします。
リンク機能(link)¶
リンク機能は同じホスト上で実行している Docker コンテナ間を接続するための、レガシーな(古い)インタフェースです。リンク機能を使うと、ホスト側のネットワーク・ポートを開く必要がありません。現在は、この機能の替わりに Docker ネットワーク機能を使います。
Machine¶
Machine (マシン)は Docker ホストを簡単に作成できるようにするツールであり、クラウド・プロバイダ上やデータセンタでも利用できます。Machine はサーバを作成し、そこに Docker をインストールし、Docker クライアントで通信できるように設定します。
別名: docker-machine
オーバレイ・ネットワーク・ドライバ¶
オーバレイ・ネットワーク・ドライバ(overlay network driver)は、クラスタ上の Docker コンテナに対して、複数ホスト間のネットワーク接続性を簡単に提供します。
オーバレイ・ストレージ・ドライバ¶
OverlayFS は、他のファイルシステムに対する ユニオン・マウント を Linux に実装するもので、 ファイルシステム 向けのサービスです。
レジストリ(registry)¶
レジストリ(registry)とは イメージ を持つ リポジトリ を預かるサービス(ホステッド・サービス)であり、レジストリ API に応答します。
デフォルトのレジストリにアクセスするには、ブラウザで Docker Hub を開くか、 docker search
コマンドを使います。
リポジトリ(repository)¶
リポジトリ(repository)とは Docker イメージの集まりです。リポジトリは レジストリ サーバに送信すると、共有されるようにできます。リポジトリの中では、イメージの違いを タグ でラベル付けします。
共有 Nginx リポジトリ と タグ の例です。
Swarm¶
Swarm (スウォーム)は Docker 用のネイティブなクラスタリング・ツールです。Swarm は複数の Docker ホストを一緒にまとめ(プールする)、1つの仮想的な Docker ホストのように装います。Swarm は標準 Docker API を提供するため、既に Docker で使えるツールであれば、複数のホスト上で透過的にスケールさせることができます。
別名:docker-swarm
タグ¶
タグ(tag)は リポジトリ 上の Docker イメージに割り当てるラベルです。タグを使い、リポジトリ上のイメージを互いに識別します。
注釈
ここでのラベルとは、docker デーモン用のキー・バリューで設定するラベルとは関係がありません。
ユニオン・ファイル・システム¶
ユニオン・ファイル・システム(Union file system)や UnionFS は、非常に軽量で高速なレイヤを作成できるファイルシステムです。Docker はコンテナのブロック構築にユニオン・ファイル・システムを使います。