ホームページ  >  記事  >  運用・保守  >  Containerd と Docker の違いは何ですか

Containerd と Docker の違いは何ですか

WBOY
WBOYオリジナル
2021-12-29 09:53:1717914ブラウズ

違い: 1.containerd は dockershim を経由する必要がないため、呼び出しチェーンは短くなりますが、docker は dockershim を経由する必要があるため、呼び出しチェーンは長くなります; 2. docker は cni "docker-shim" を呼び出します、containerd は cni を「containerd-cri」と呼びます。

Containerd と Docker の違いは何ですか

このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。

containerd と docker の違いは何ですか

k8s を使用する場合、docker とcontainerd を使用する呼び出しチェーンは次のとおりです。

Containerd と Docker の違いは何ですか

containerd を使用すると、呼び出しチェーンが短くなり、dockershim と docker

データ ディレクトリを経由する必要がないことがわかります。

docker のデフォルトのデータ ディレクトリが /var/lib/docker ディレクトリにあることは誰もが知っていると思いますが、containerd に切り替えると、データ ディレクトリはデフォルトで /var/lib/containerd

になります。

Log

k8s を使用する場合、docker がランタイムとして使用されている場合、実際には docker がコンテナー プログラムのログをディスクに書き込む役割を果たします。 /var/log/pod および /var/log/container の下のログ ファイルは、/var/lib/docker の下の対応するログ ファイルにソフトリンクされます。ログのいくつかのパラメータを設定する必要がある場合は、直接変更できます。 docker 構成ファイル。;そして、containerd をランタイムとして使用する場合、kubelet がコンテナー ログの配置を担当します。/var/log/container の下のログ ファイルは、/var の下のログ ファイルにソフト接続されます。 /log/pod. ログパラメータの調整が必要な場合は、kubelet 関連の設定を変更する必要があります

CNI

docker をランタイムとして使用する場合、docker-shim kubelet では cni を呼び出す役割があり、containerd を実行時に使用する場合、containerd に組み込まれているcontainerd-cri が cni

[plugins."io.containerd.grpc.v1.cri".cni]       
bin_dir = "/opt/cni/bin"       
conf_dir = "/etc/cni/net.d"

ストリーミング サービス

を呼び出す役割を果たします。 k8s に詳しい友人は、kubectl exec や kubelet log などのコマンドを渡す必要があることを知っています。API サーバーは、ストリーミング サービスを含むコンテナと通信します。 docker API 自体は、kubelet の docker-shim が docker API ストリームを通じて転送されることをサポートしていますが、containerd は別途設定する必要があります

[plugins."io.containerd.grpc.v1.cri"]     
stream_idle_timeout = "4h0m0s"    
 stream_server_address = "127.0.0.1"    
 stream_server_port = "0"     
enable_tls_streaming = false

推奨される学習: 「

docker ビデオ チュートリアル

以上がContainerd と Docker の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。