type
status
date
slug
summary
tags
category
icon
password
书籍

Dockerアーキテクチャ概要

Dockerは、コンテナ化されたアプリケーションを管理・デプロイするためのプラットフォームで、クライアント・サーバー型のアーキテクチャを採用しています。以下に、Dockerの主な構成要素と機能について説明します。

Dockerアーキテクチャの構成要素

  1. クライアント
      • Dockerクライアントは主にコマンドラインインターフェース(CLI)ツールであるdockerであり、ユーザーがコマンドを発行してDockerと対話します。
      • サーバーとRESTful APIを介して通信し、操作リクエストを送信します。
  1. サーバー(デーモン)
      • DockerサーバーはデーモンとしてOS上で動作し、コンテナイメージの作成、実行、ダウンロードといった主要な作業を担当します。
      • デーモンはクライアントと同じシステム上またはリモートで実行できます。
  1. Dockerのコア要素
      • イメージ:コンテナを作成するための読み取り専用のテンプレートで、ランタイム環境やアプリケーションが含まれています。
      • レジストリ:イメージを保存する場所で、パブリック(例:Docker Hub)やプライベートで運用できます。
      • コンテナ:ホストOS上でアプリケーションを分離して実行するユーザースペース環境です。

DockerにおけるLinuxカーネルの役割

  1. 名前空間(Namespaces)
      • 特定のシステムリソース(ネットワークインターフェースやプロセスIDなど)を分離し、他のプロセスから見えないようにします。各コンテナは専用の名前空間で動作し、リソースの隔離が実現されます。
  1. コントロールグループ(cgroups)
      • 各コンテナが使用できるシステムリソース(CPUやメモリなど)を制限するための仕組みです。これにより、あるコンテナがホストのリソースを過剰に使用することを防ぎます。
  1. SELinux
      • セキュリティ強化Linux(SELinux)は、ホストシステムとコンテナの相互の保護を提供します。各コンテナのプロセスは、SELinuxの制約により他のコンテナやホストに対するアクセスが制限されます。

Dockerコンテナイメージ

  • Dockerのイメージは、複数のレイヤーで構成されています。各レイヤーは変更不可であり、新しいレイヤーが既存のレイヤーの上に追加される仕組みです。
  • これにより、コンテナに一貫したファイルシステムを提供し、UnionFSファイルシステムを使用してレイヤーの統合ビューを作成します。

Dockerイメージ作成方法

Dockerでは、コンテナイメージを作成するために2つの主要なアプローチがあります:
  1. 実行中のコンテナを使用する方法
      • 不変(immutable)のイメージを基に新しいコンテナインスタンスを起動し、そのコンテナ内で必要な変更や更新を実施します。これらの変更は、読み書き可能な追加レイヤーとして保存されます。
      • この追加レイヤーを既存のイメージに保存することで、新しいイメージを生成できます。
      • シンプルで簡単な方法ですが、一時ファイルやログなど不要なファイルが含まれ、イメージサイズが大きくなる可能性があるため、推奨されないアプローチです。
  1. Dockerfileを使用する方法
      • ベースイメージを基に、一連の「命令(instructions)」を記述したDockerfileから新しいイメージを作成します。
      • 各命令はイメージ上に新しいレイヤーを作成し、最終的なコンテナイメージが構築されます。
      • この方法は、各レイヤーにどのファイルを追加するかを制御できるため、イメージ作成の推奨アプローチです。

参考資料

Dockerfileを使用することで、効率的で無駄のないイメージが作成でき、コンテナ管理がより容易になります。

このように、Dockerはコンテナの隔離と効率的な管理を実現するために、クライアント・サーバー型のアーキテクチャとLinuxの機能を活用しています。
 

問題と解説(Dockerアーキテクチャについて)

質問1
以下のタスクのうち、Dockerクライアント以外のコンポーネントによって管理されるものはどれですか?(3つ選んでください)
a. レジストリからのコンテナイメージファイルのダウンロード
b. サーバーからのコンテナイメージのデプロイ要求
c. レジストリからのイメージ検索
d. コンテナイメージのビルド
解説
Dockerはクライアント・サーバーアーキテクチャを採用しています。dockerコマンドを使用して、クライアントがサーバー(デーモン)と通信し、RESTful APIを介して操作を要求します。クライアント以外で管理されるタスクには、a. ダウンロード、c. イメージ検索、d. ビルドが含まれます。これらの処理はDockerデーモンまたはレジストリによって管理され、クライアントが直接実行するものではありません。
正解:a、c、d

質問2
以下の選択肢のうち、コンテナイメージを最も適切に説明しているものはどれですか?
a. コンテナが作成される仮想マシンイメージ
b. コンテナが作成されるブループリント
c. アプリケーションが実行されるランタイム環境
d. レジストリで使用されるコンテナのインデックスファイル
解説
コンテナイメージは、アプリケーションのランタイム環境を構築するための「テンプレート」として使用されるブループリントです。イメージは変更できないため、一貫した環境を提供します。このため、正しい回答はb. ブループリントとなります。
正解:b

質問3
Dockerがコンテナのランタイム環境を作成および管理するために使用するカーネルコンポーネントはどれですか?(2つ選んでください)
a. ネームスペース
b. iSCSI
c. コントロールグループ(cgroups)
d. LVM
e. NUMAサポート
解説
Dockerは、Linuxカーネルの機能であるネームスペースとコントロールグループ(cgroups)を活用してコンテナを隔離し、リソースの制限と管理を行います。ネームスペースにより、ネットワークやファイルシステムなどのリソースを独立した環境として表示し、コントロールグループはコンテナが使用するリソースの制限を設定します。
正解:a、c

質問4
開発者のマシンでWordPressブログの既存イメージを更新し、新しい自作の拡張機能を追加しました。これらの更新内容を反映した新しいイメージを作成するための最適な方法はどれですか?(1つ選んでください)
a. 開発者のカスタムWordPressに行った更新を、プロダクションのWordPressにコピーし、イメージ内でパッチを適用する。
b. 開発者のカスタムWordPressに行った更新をDockerfileを使用して新しいイメージに組み込み、コンテナイメージを再構築する。
c. プロダクションと開発者のWordPressイメージの差分を実行し、すべてのバイナリ差分をプロダクションイメージに適用する。
d. 更新されたファイルを開発者のイメージからプロダクション環境の/tmpディレクトリにコピーし、イメージの更新を要求する。
解説
最適な方法はDockerfileを使用して新しいイメージを構築する方法です。Dockerfileによって一貫性を保ちながら更新を反映でき、変更内容が明確に記録されます。直接変更を反映する方法(a.やd.)では、一貫性が損なわれる恐れがあるため、推奨されません。
正解:b
相关文章
RedHat EX200 本番近い試験問題集
Lazy loaded image
RedHat EX200 本番試験問題集(有料版)
Lazy loaded image
82- 第17章:導入総復習-3:OpenShiftにマルチコンテナデプロイのラボ
Lazy loaded image
81- 第17章:導入総復習-2:docker,KubernetesおよびOpenShiftのラボ
Lazy loaded image
80- 第17章:導入総復習-1:総合レビュー
Lazy loaded image
79- 第16章:OpenShiftの管理と監視-8:ラボ
Lazy loaded image
04- 第2章:コンテナ技術の説明-3:KubernetesとOpenShiftアーキテクチャの説明02-第2章:コンテナ技術の説明-1:コンテナアーキテクチャの説明
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
35条書面-64問-1
2025年6月13日
TOKYO自習島
2025年6月10日
平成26年秋期 午後問1
2025年6月6日
令和5年秋期 午後問1
2025年6月6日
令和2年秋期 午後問1
2025年6月6日
業務上の規制-87問-1
2025年6月4日
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享在 IT・MBA・不动产中介 等领域的学习与实践,并推动 学习会 的自主开展。
📖 博客语言使用比例
🇯🇵 日语 90% 🇨🇳 中文 8% 🇬🇧 英语 2%

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!