さようなら 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オブジェクト指向実装

推薦する

HTML 基本構造_Powernode Java アカデミー

多くの場合、Web ページ開発を学ぶときに最初に印象に残るのは、html または htm サフィック...

高同時実行シナリオにおける nginx 最適化の詳細な説明

日常の運用・保守作業では、nginx サービスが頻繁に使用され、nginx の高同時実行性によって生...

CentOS 6.5 に MySQL 5.6 をインストールするチュートリアル

1. Linuxに対応するRPMパッケージをダウンロードする5.6 より前のバージョンhttp://...

MySQLは遅いSQLを開始し、原因を分析します

ステップ1. MySQLスロークエリを有効にする方法1: 設定ファイルを変更するWindows: W...

SQL Server の完全バックアップに関する珍しいエラーと解決策

1. エラーの詳細一度、データベース全体のバックアップを手動で実行したときに、次のエラーが発生しまし...

UrlRewriter のキャッシュ問題と関連する一連の調査

ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

docker コンペ応募でよく使われるコマンドのまとめ

アカウントにログイン DOCKER_REGISTRY=registry.cn-hangzhou.al...

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

CSS 境界線の半分または部分的に表示される実装コード

1. 疑似クラスを使用して境界線の半分を表示する <!DOCTYPE html> <...

Webpack プロジェクトでローダー プラグインをデバッグする方法

最近、webpackの使い方を学んでいたときに、webpack-replace-loaderの設定正...

MySQL 5.7.21 のインストールと設定のチュートリアル

mysql5.7.21の簡単なインストール構成は次のとおりです。 1. MySQLのインストール1....

MySQL でタイムスタンプを日付に変換する例

序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...

Linux 環境に mysql5.7.36 データベースをインストールするチュートリアル

ダウンロードアドレス: https://dev.mysql.com/downloads/mysql/...

JDBC および MySQL 一時テーブルスペースの詳細な分析

背景一時テーブルスペースは、データベースのソート操作を管理し、一時テーブルや中間ソート結果などの一時...