Docker エンジンは、コンテナーの実行と管理に使用されるコア ソフトウェアであり、その主なコンポーネントは、Docker クライアント、Docker デーモン、containerd、runc です。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
1. Docker エンジンの概要
2. Docker エンジンの詳細説明
- Docker が最初にリリースされたとき、Docker は LXC と Docker デーモンという 2 つのコア コンポーネントで構成されていました。
- Docker デーモンは、Docker クライアント、Docker API、コンテナー ランタイム、イメージ構築などを含む単一のバイナリ ファイルです。
- LXC は、Linux カーネルに基づくコンテナ仮想化テクノロジである、名前空間やコントロール グループ (CGroup) などの基本ツールを操作する機能を提供します。 Docker バージョン 0.9 では、Libcontainer がデフォルトの実行ドライバーとして LXC を置き換えます。
2.1. Docker デーモン
- Docker デーモンの整合性により、ますます多くの問題が発生します:
- 変更の難しさ
- 実行速度がどんどん遅くなっている
- これは環境保護企業が期待していたものではありません
- デーモンは gRPC およびコンテナー通信を介して CRUD スタイルの API を使用しています
2.2. runc
- runc は本質的に、Libcontainer 用にパッケージ化された軽量のコマンドライン対話型ツールです。
- Runc 関数: コンテナーの作成
2.3.containerd
- Main 関数: コンテナーのライフサイクル管理 –start|stop | stop|rm…
2.4. shim
- shim はデーモンのないコンテナを実装するために不可欠なツールです。Runc はコンテナが作成されるたびに新しいコンテナを作成します。新しい runc インスタンスがフォークされ、コンテナーが作成されると、対応する runc プロセスが終了します。
- 親プロセス runc が終了すると、関連付けられたコンテナー shim プロセスがコンテナーの親プロセスになります
- shim の役割の一部:
- すべての STDIN および STDOUT ストリームを保持しますオープン状態。デーモンが再起動されたときに、パイプが閉じられてコンテナーが終了することはありません。
- コンテナの終了ステータスをデーモンにフィードバックします。
2.5. Linux での実装
- dockerd(Docker デーモン)、docker-containerd(containerd)、両方の docker -containerd-shim(shim) と docker-runc(runc) は別個のバイナリとして実装されます。
2.6. デーモンの役割
- 主な機能: イメージ管理、イメージ構築、REST API、認証、セキュリティ、コアネットワーク、オーケストレーション。
推奨学習: 「docker ビデオ チュートリアル 」
以上がドッカーエンジンとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。