第7章 Docker 形式の Linux コンテナー
Dockerは、Linux コンテナー内でのアプリケーションのデプロイメントを自動化するオープンソースプロジェクトで、アプリケーションとそのランタイム依存関係をコンテナーにパッケージ化する機能を提供しています。イメージベースのコンテナーのライフサイクル管理のための Docker CLI コマンドラインツールを提供します。Linux コンテナーは、セキュリティーを強化する一方で、迅速なアプリケーションデプロイメント、単純なテスト、メンテナーンス、およびトラブルシューティングを可能にします。Red Hat Enterprise Linux 7 と Docker を併用することで、顧客はスタッフの効率を高め、サードパーティーアプリケーションをより迅速にデプロイメントし、より機敏な開発環境を実現し、リソースをより厳密に管理できます。
Docker コンテナーをすぐに起動して実行するには、Docker コンテナーの使用を 開始 するを参照してください。
docker 形式の Linux コンテナーは、SELinux が有効になっているホストでの実行に対応しています。
/var/lib/docker
ディレクトリーが、B-tree ファイルシステム (Btrfs) を使用するボリュームにあると、SELinux はサポートされません。
7.1. Docker コンテナーのコンポーネント
Docker は、次の基本的なコンポーネントで動作します。
- Container – アプリケーションサンドボックス。各コンテナーは、必要な設定データを保持するイメージに基づいています。イメージからコンテナーを起動すると、書き込み可能な階層がこのイメージの上部に追加されます。コンテナーをコミットするたびに (docker commit コマンドを使用)、変更を保存する新しいイメージ層が追加されます。
- Image – コンテナーの設定の静的スナップショット。イメージは、変更されることのない読み取り専用レイヤーです。変更はすべて最上位の書き込み可能なレイヤーで行われ、新規イメージを作成することによってのみ保存できます。各イメージは、複数の親イメージに依存します。
- プラットフォームイメージ – 親を持たないイメージ。プラットフォームイメージは、コンテナー化されたアプリケーションの実行に必要なランタイム環境、パッケージ、およびユーティリティーを定義します。プラットフォームイメージは読み取り専用であるため、その上部にスタックされたコピーイメージに変更が反映されます。そのようなスタッキングの例を参照してください図7.1「Docker 形式を使用したイメージの階層化」.
- レジストリー – イメージのリポジトリー。レジストリーは、ダウンロード可能なイメージを含むパブリックまたはプライベートリポジトリーです。一部のレジストリーでは、ユーザーがイメージをアップロードして他のユーザーが利用できるようにすることができます。
- Dockerfile – Docker イメージのビルド手順を含む設定ファイル。Dockerfile は、ビルド手順を自動化、再利用、および共有する方法を提供します。
図7.1 Docker 形式を使用したイメージの階層化
![Docker 形式を使用したイメージの階層化](https://access.redhat.com/webassets/avalon/d/Red_Hat_Enterprise_Linux-7-7.0_Release_Notes-ja-JP/images/440aa214d60c93edebd6b4522fffe54f/docker_structure.png)
[D]