【ゼロから始めるDocker】Dockerのアーキテクチャ

読者向け:すべての人

✍コラム: Docker ゼロベース入門チュートリアル

Docker デーモンとは何ですか?

ドッカークライアント

ドッカーホスト

Docker レジストリ

Docker オブジェクト

ドッカーイメージ

Docker容器(Docker Containers)

Docker ストレージ

Docker ストレージの種類 

Dockerネットワーク

Docker ネットワークの種類

Docker はクライアントサーバーアーキテクチャを使用します。Docker クライアントは Docker デーモンと通信し、Docker コンテナーの構築、実行、配布を支援します。Docker クライアントはデーモンと同じシステム上で実行されます。または、Docker クライアントを Docker デーモンにリモートで接続できます。Docker クライアントとデーモンは、ネットワーク上の UNIX ソケットまたは REST API を使用して相互に対話できます。 

Docker デーモンとは何ですか?

Docker デーモンは、他のデーモンと通信することによってすべてのサービスを管理します。Docker の API リクエストを使用して、イメージ、コンテナ、ネットワーク、ボリュームなどの Docker オブジェクトを管理します。

ドッカークライアント

Docker クライアントを使用すると、Docker ユーザーは Docker と対話できます。docker コマンドは Docker API を使用します。Docker クライアントは複数のデーモンと通信できます。docker クライアントが docker ターミナル上で docker コマンドを実行すると、ターミナルはデーモン プロセスに指示を送信します。Docker デーモンは、Docker クライアントからコマンドおよび REST API リクエストの形式でこれらの指示を取得します。

Docker クライアントの主な目的は、Docker レジストリからイメージを直接プルし、Docker ホスト上で実行する方法を提供することです。クライアントが使用する一般的なコマンドは、docker build、docker pulldocker run です。

ドッカーホスト

Docker ホストは、複数のコンテナーの実行を担当するマシンです。これは、Docker デーモン、イメージ、コンテナー、ネットワーク、ストレージで構成されます。

Docker レジストリ

すべての docker イメージは docker レジストリに保存されます。誰でも使用できるdocker Hubと呼ばれるパブリック レジストリがあります。 プライベートレジストリを実行することもできます。docker runまたはdocker pullコマンドを使用すると、構成されたレジストリから必要なイメージをプルできます。docker Pushコマンドを使用して、構成されたレジストリにイメージをプッシュします。

Docker オブジェクト

Docker を使用するときは常に、イメージ、コンテナー、ボリューム、ネットワーク、その他のオブジェクトを作成して使用します。

ドッカーイメージ

イメージには、Docker コンテナーを作成するための手順が含まれています。これは単なる読み取り専用のテンプレートです。アプリケーションの保存と送信に使用されます。イメージは、開発者がこれまで不可能だった方法で共同作業できるようにするため、Docker エクスペリエンスの重要な部分を占めています。

Docker容器(Docker Containers)

コンテナーは既製のアプリケーションであるため、Docker イメージから作成されます。Docker API または CLI を使用すると、コンテナーを開始、停止、削除、移動できます。コンテナーでのイメージの構築中に追加のアクセス許可が定義されない限り、コンテナーはイメージで定義されたリソースにのみアクセスできます。

Docker ストレージ

コンテナーの書き込み可能レイヤーにデータを保存できますが、それにはストレージ ドライバーが必要です。ストレージ ドライバーは、Docker ホスト上のイメージとコンテナーを制御および管理します。 

Docker ストレージの種類 

  1. データ ボリューム:データ ボリュームはコンテナのファイル システムに直接マウントでき、基本的には Docker ホストのファイル システム上のディレクトリまたはファイルです。
  2. ボリュームコンテナ: コンテナの実行により生成されたコンテナの状態(データ)を維持するために、Dockerコンテナ上にDockerボリュームファイルシステムがマウントされます。独立したコンテナーのライフサイクル、ボリュームはホスト上に保存されます。これにより、ユーザーはコンテナ間でファイル システムを簡単に交換したり、データをバックアップしたりできるようになります。
  3. ディレクトリ マウント:コンテナ内のボリュームとしてマウントされるホスト ディレクトリを指定できます。 
  4. ストレージ プラグイン:  Docker ボリューム プラグインを使用すると、Docker コンテナを Amazon EBS などの外部ボリュームと統合して、コンテナの状態を維持できるようになります。

Dockerネットワーク

Docker コンテナは完全な分離を提供します。これは、ユーザーが Docker コンテナを多くのネットワークにリンクできることを意味します。ワークロードを実行するために必要なオペレーティング システム インスタンスはほとんどありません。

Docker ネットワークの種類 

  1. ブリッジ:デフォルトのネットワークドライバーです。これは、異なるコンテナが同じ Docker ホストと通信するときに使用できます。
  2. ホスト:コンテナとホストを分離する必要がない場合にこれを使用します。
  3. オーバーレイ:相互に通信するために、swarm サービスが有効になります。
  4. なし:すべてのネットワークが無効になります。
  5. macvlan:このネットワークは、物理アドレスのように見えるコンテナに MAC (メディア アクセス コントロール) アドレスを割り当てます。

おすすめ

転載: blog.csdn.net/arthas777/article/details/133473106