さようなら Docker: 5 分で Containerd に移行する方法

さようなら Docker: 5 分で Containerd に移行する方法

Docker は非常に人気のあるコンテナ技術です。K8S によって廃止され、別のコンテナ技術である containerd に置き換えられたという記事が数多くあります。実は、containerd は Docker から分離された基盤となるコンテナ ランタイムにすぎず、使い方も Docker と変わりません。この記事では主に containerd の使い方を紹介しており、皆様のお役に立てれば幸いです。

containerd の紹介

Containerd は、シンプルさ、堅牢性、移植性を重視した業界標準のコンテナ ランタイムです。 Containerd は、コンテナ イメージの転送と保存、コンテナの実行と管理、ストレージ、ネットワークなど、ホスト内のコンテナのライフサイクル全体を管理できます。

Docker と containerd の比較

Containerd は Docker から分離されたプロジェクトで、低レベルのコンテナ ランタイムとして使用できます。現在では、Kubernetes コンテナ ランタイムのより良い選択肢となっています。

Docker だけでなく、多くのクラウド プラットフォームも、基盤となるコンテナ ランタイムとして containerd をサポートしています。詳細については、下の図を参照してください。

K8S クリ

K8S は、コンテナ ランタイム インターフェースを統一した CRI (Container Runtime Interface) をリリースしました。CRI をサポートするコンテナ ランタイムはすべて、K8S の基盤となるコンテナ ランタイムとして使用できます。

K8S がコンテナランタイムとして Docker を放棄し、containerd を使用するのはなぜですか?

K8S コンテナ ランタイムとして Docker を使用する場合、kubelet は最初にdockershimを介して Docker を呼び出し、次に Docker を介して containerd を呼び出す必要があります。

K8S コンテナ ランタイムとして containerd を使用する場合、containerd にはCRIプラグインが組み込まれているため、kubelet は containerd を直接呼び出すことができます。

containerd を使用すると、パフォーマンスが向上するだけでなく (呼び出しチェーンが短くなる)、リソースの使用量も削減されます (Docker は純粋なコンテナ ランタイムではなく、他にも多くの機能があります)。

コンテナの使用

以前に Docker を使用したことがある場合は、わずか 5 分で containerd を習得できます。次に、containerd の使い方を学習しましょう。

  • 前の記事「K8S を実行できるのはハイエンドマシンだけだと言われているが、ネットユーザー:1G メモリのガラクタでも実行できる!」 》 K3S をインストールしました。K3S はデフォルトでコンテナランタイムとして containerd を使用するため、K3S をインストールすればそのまま使用できます。
  • 実際、実行中のすべてのコンテナを表示するには、以前使用したdockerコマンドをcrictlコマンドに変更するだけで、containerd を操作できます。

クリクトルps

コンテナイメージ作成状態名試行ポッドID
4ca73ded41bb6 3b0b04aa3473f 1秒未満前 実行中のヘルム 20 21103f0058872
3bb5767a81954 296a6d5035e2d 約 1 分前 coredns 1 を実行中 af887263bd869
a5e34c24be371 0346349a1a640 約1分前 nginx 1 89defc6008501 を実行中

すべての画像を表示;

crictl画像

画像タグ 画像ID サイズ
docker.io/ライブラリ/nginx 1.10 0346349a1a640 71.4MB
docker.io/rancher/coredns-coredns 1.8.0 296a6d5035e2d 12.9MB
docker.io/rancher/klipper-helm v0.4.3 3b0b04aa3473f 50.7MB
docker.io/rancher/local-path-provisioner v0.0.14 e422121c9c5f9 13.4MB
docker.io/rancher/metrics-server v0.3.6 9dd718864ce61 10.5MB
docker.io/rancher/pause 3.1 da86e6ba6ca19 327kB

コンテナに入り、bash コマンドを実行します。コンテナ名ではなく、コンテナ ID のみ使用できることに注意してください。

crictl exec -it a5e34c24be371 /bin/bash

コンテナ内のアプリケーションのリソース使用量を確認すると、非常に低いことがわかります。

crictl 統計

コンテナ CPU % MEM ディスク INODES
3bb5767a81954 0.54 14.27MB 254B 14
a5e34c24be371 0.00 2.441MB 339B 16

要約する

Docker から containerd への移行は非常に簡単で、基本的に制限はありません。先ほどのDockerコマンドのdocker crictl変更するだけで基本的には完了します。 さすが同じ会社の製品だけあって使い方も同じです。したがって、K8S が Docker を放棄するかどうかに関係なく、開発者には基本的に影響はありません。

これで、5分でDockerからcontainerdに移行する方法についての記事は終わりです。dockerからcontainerdへの移行の詳細については、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • kubernetes1.20 で docker (shim) を containerd に置き換える問題について説明します。
  • Dockerコンテナを終了した後も実行を継続する方法
  • Dockerは異常なコンテナ操作を排除する
  • Dockerはコンテナにポートを動的に公開します
  • Dockerイメージ内のnoneイメージ操作を削除する
  • Dockerイメージのローカル移行の実装
  • Dockerイメージが消える問題を解決する
  • Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策
  • Dockerでイメージを削除する方法
  • Docker でのコンテナとイメージの命名

<<:  MYSQL大規模書き込み問題の最適化の詳細な説明

>>:  虫眼鏡ケースのJavaScriptオブジェクト指向実装

推薦する

CSS チュートリアル: CSS 属性メディア タイプ

スタイルシートの最も重要な機能の 1 つは、ページ、画面、電子シンセサイザーなどの複数のメディアに適...

HTMLの基本タグと構造の詳細な説明

1. HTMLの概要1.HTML: ハイパーテキスト マークアップ言語。これはプログラミング言語では...

MySQL例外に対する一般的な解決策をいくつか分析する

目次序文1. コードによって設定されたデータベース名またはパスワードがローカルデータベースと一致して...

MySQL 5.7 mysql コマンドラインクライアントの使用コマンドの詳細

MySQL 5.7コマンドを使用するMySQLコマンドラインクライアント1. パスワードを入力してく...

WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

序文休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデ...

mysql mycat ミドルウェアの簡単な紹介

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...

MySQLスタートアップが起こした事故の実録

目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...

CSS3 フレックスボックス自動記入の書き方を詳しく解説

この記事では、主に CSS3 フレックス エラスティック ボックスの自動塗りつぶしの書き方について詳...

Linuxサービスの監視と運用および保守

目次1. psutilパッケージをインストールする次に、オペレーティングシステム内のすべてのサービス...

MybatisはSQLクエリのインターセプションと変更の詳細を実装します

序文インターセプターの機能の 1 つは、特定のメソッドの呼び出しをインターセプトできることです。イン...

シンプルなドラッグ効果を実現するJavaScript

この記事では、ドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...

初心者向けウェブサイト構築チュートリアルの概要

これら 6 つの記事を書いた後、私は少し混乱し始めました。次にどこに書けばいいのか分かりません。ドメ...

IEの送信フォームの記録履歴クリックリターン情報を実現するためのCSSスタイルコントロールはまだ残っています

これは主に CSS スタイルのコントロールと META タグです。コードをコピーコードは次のとおりで...

表内のコンテンツオーバーフローのレイアウト方法について

コンテンツオーバーフローとは何ですか?実際、テキストが大量にある場合、コンテンツ領域がそれだけの長さ...