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

推薦する

MySQL slow_log テーブルを InnoDB エンジンに変更することはできません。詳細な説明

背景mysql.slow_log からスロー クエリ ログを取得するのは遅く、テーブルは csv テ...

MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

関数を使用する前にパラメータのプロパティを理解して、関数の使い方をより深く理解する必要があることは誰...

CSS3はグラフィックの落下アニメーション効果を実現します

まずは効果を確認実装コード <div class="box box1"&g...

純粋なJSを使用してセカンダリメニュー効果を実現します

この記事の例では、セカンダリメニュー効果を実現するためのJSの具体的なコードを参考までに共有していま...

Nginx で CDN サーバーを構築する方法の詳細な説明 (画像とテキスト)

Nginxのproxy_cacheを使用してキャッシュサーバーを構築する1: ngx_cache_...

JS での filter() 配列フィルターの使用

目次1. はじめに2. 方法の紹介3. 使用例要約する1. はじめに配列フィルターは、フロントエンド...

MySQL ストレージエンジン InnoDB の設定と使用方法の説明

MyISAM と InnoDB は、MySQL で最も一般的なストレージ エンジンです。前回の記事で...

ウェブデザインの経験とスキルの概要

■ ウェブサイトのテーマ計画 ウェブサイトのテーマが断片化しすぎないように注意してください。一般的に...

CSSプロパティに基づいたボタンホバーボーダーと背景アニメーションのコレクション

ハートの属性不透明度: .999 は要素のスタッキングコンテキストを作成し、ボタン6と8のアニメーシ...

Linux に MySQL 8.0.x をインストールするための完全な手順

マイグレーションMySQL 入門MySQL はもともとオープンソースのリレーショナル データベース管...

HTMLからPDFへの変換のための純粋なクライアント側と純粋なサーバー側の実装ソリューション

必要ユーザーがフォームに入力して「保存」をクリックすると、PDF ドキュメントを直接ダウンロードでき...

仮想マシンのLinux初心者がIPを設定し、ネットワークを再起動する

仮想マシンを初めて使用する方や、仮想マシンに Linux をインストールしたばかりの方は、システムが...

CentOS 7.4 で MySQL 5.7.28 バイナリモードをインストールする方法

Linuxシステムバージョン: CentOS7.4 MySQL バージョン: 5.7.28 Linu...

Mac で Docker を使用して Oracle をデプロイする方法

Mac で Docker を使用して Oracle をデプロイする方法まずdockerをインストール...

vue-qr を使用して Vue の QR コードを生成する方法について深く理解する

目次npm ダウンロードステップ(1)輸入(2)vue-qrパラメータ例要約する「QRコード」の英語...