Dockerアーキテクチャ入門

Dockerアーキテクチャ入門

Docker には 3 つの基本概念が含まれています。

  • イメージ: Docker イメージはルート ファイル システムに相当します。たとえば、公式イメージ ubuntu:16.04 には、Ubuntu 16.04 最小システムの完全なルート ファイル システムが含まれています。
  • コンテナ: イメージとコンテナの関係は、オブジェクト指向プログラミングにおけるクラスとインスタンスの関係に似ています。イメージは静的な定義であり、コンテナはイメージ実行時のエンティティです。コンテナは作成、開始、停止、削除、一時停止などが可能です。
  • リポジトリ: リポジトリは、イメージを保存するためのコード制御センターと考えることができます。

Docker はクライアント サーバー (C/S) アーキテクチャ モデルを使用し、リモート API を使用して Docker コンテナーを管理および作成します。

Docker コンテナは Docker イメージから作成されます。

コンテナとイメージの関係は、オブジェクト指向プログラミングにおけるオブジェクトとクラスの関係に似ています。

ドッカーオブジェクト指向
容器物体
親切

コンセプト例示する

Docker イメージ

Docker イメージは、Ubuntu システムなどの Docker コンテナを作成するために使用されるテンプレートです。

Dockerコンテナ

コンテナは、独立して実行されるアプリケーションまたはアプリケーションのグループであり、イメージの実行時のエンティティです。

Dockerクライアント

Docker クライアントは、Docker SDK (https://docs.docker.com/develop/sdk/) を使用して、コマンド ラインまたはその他のツールを介して Docker デーモンと通信します。

Dockerホスト

Docker デーモンとコンテナを実行するために使用される物理マシンまたは仮想マシン。

Docker レジストリ

Docker リポジトリはイメージを保存するために使用され、コード制御におけるコード リポジトリとして理解できます。

Docker Hub (https://hub.docker.com) では、使用できるイメージの膨大なコレクションが提供されています。

Docker レジストリには複数のリポジトリを含めることができ、各リポジトリには複数のタグを含めることができ、各タグはイメージに対応します。

通常、リポジトリには同じソフトウェアの異なるバージョンのイメージが含まれており、ソフトウェアの異なるバージョンに対応するためにタグがよく使用されます。 <ウェアハウス名>:<ラベル> の形式を使用して、どのバージョンのソフトウェアがミラーであるかを指定できます。タグが指定されていない場合は、最新のタグがデフォルトのタグとして使用されます。

ドッカーマシン

Docker Machine は、Docker のインストールを簡素化するコマンドライン ツールです。シンプルなコマンドラインを使用して、VirtualBox、Digital Ocean、Microsoft Azure などの対応するプラットフォームに Docker をインストールできます。

以上がDockerアーキテクチャの紹介の詳しい内容です。Dockerアーキテクチャについてさらに詳しく知りたい方は、123WORDPRESS.COM内の他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • DockerプライベートライブラリHarborのアーキテクチャとコンポーネントの説明
  • MySQL 5.7 Docker のマスタースレーブレプリケーションアーキテクチャの構築に関するチュートリアル

<<:  Reactは二次的連鎖効果(階段効果)を実現する

>>:  mysql-connector-java.jar パッケージのダウンロード プロセスの詳細な説明

推薦する

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

Docker プライベート サーバー イメージを定期的にクリーンアップする方法

CI を利用してリリース用の Docker イメージをビルドすることで、全員のバージョンリリース効率...

MySQL移行計画と落とし穴の実践記録

目次背景解決策1: 古いデータをバックアップするオプション2: テーブルを分割する解決策3: tid...

mysql: [エラー] 不明なオプション '--skip-grant-tables'

MySQL データベースがエラー 1045 (28000): ユーザー 'ODBC'...

CSS における重要なカスケード概念の詳細な説明

最近、プロジェクトの過程で問題に遭遇しました。メニューバーを常に上部に表示し、後続の要素をその下に表...

React+axios は github 検索ユーザー機能を実装します (サンプル コード)

負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...

ファイアウォールの iptables 戦略を使用して Linux サーバー上のポートを転送する方法

2つの異なるサーバー間の転送ポート転送を有効にするまず、デフォルトでは無効になっている IP 転送機...

Vue検証コードコンポーネントの使い方の詳しい説明

この記事の例では、vue検証コードコンポーネントで使用される具体的な実装コードを参考までに共有してい...

MySQL max_allowed_pa​​cket 設定

max_allowed_pa​​cket は、受け入れるパケットのサイズを設定するために使用される ...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

Web プロジェクト開発 JS 機能の手ぶれ補正とスロットリングのサンプル コード

目次安定導入手ぶれ補正シーン1(マウスの動き込み)手ぶれ補正シーン2(キーボードのキー)関数のスロッ...

暗号化における https の Apache 展開の概要

目次目的実験環境実験原理実験手順1. 独立したCAを生成する2. サーバーの秘密鍵と署名要求ファイル...

MySQL killコマンドの実行原理の詳細な説明

目次キル命令実行原理命令実行特性クエリ実行の強制終了の原則接続終了の実装原則中断される可能性はありま...

Vueはカードフリップ効果を実現します

この記事では、カードフリップ効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...