Utilisation de base de Containerd

1) Connaissances de base sur Containerd

À partir de la version 1.11 de Docker, l'exécution des conteneurs Docker n'est pas simplement lancée par Docker Daemon, mais en intégrant plusieurs composants tels que containerd et runc.

Bien que le module démon Docker Daemon soit constamment refactorisé, les fonctions de base et le positionnement n'ont pas beaucoup changé. Il s'agit toujours d'une architecture CS. Le démon est responsable de l'interaction avec le client Docker et de la gestion des images et des conteneurs Docker.

Le composant containerd dans l'architecture actuelle est responsable de la gestion du cycle de vie des conteneurs sur les nœuds du cluster et fournit au démon Docker une interface gRPC.

Containerd-shim est un plugin pour Containerd, qui est utilisé pour agir en tant que gestionnaire de processus, recevoir des commandes de containerd et créer et gérer des processus à l'intérieur du conteneur. Il peut fonctionner avec Runc afin que les opérations telles que la création, le démarrage, l'arrêt, la suspension et la reprise des conteneurs puissent être gérées efficacement. En un mot, la création de conteneurs est réalisée par Containerd-shim.

Nous savons tous que la création d'un conteneur nécessite une certaine configuration des espaces de noms et des groupes de contrôle, ainsi que l'opération de montage du système de fichiers racine. En fait, ces opérations ont déjà des spécifications standard, c'est-à-dire OCI (Open Container Standard).

OCI est essentiellement un document de spécification, qui stipule principalement la norme de structure de l'image du conteneur et la norme du conteneur recevant des instructions d'opération, telles que créer, démarrer, arrêter, supprimer et d'autres commandes. En fait, Runc implémente le conteneur de gestion selon différentes spécifications de cet OCI.

Ainsi, le conteneurd-shim est utilisé pour appeler runc pour démarrer le conteneur. Après avoir exécuté le conteneur, runc se terminera directement et containerd-shim deviendra le processus parent du processus de conteneur. Il est responsable de la collecte de l'état du processus de conteneur Et après la sortie du processus avec le pid 1 dans le conteneur, il reprendra le processus enfant dans le conteneur pour le nettoyer, afin de s'assurer qu'aucun processus zombie n'apparaîtra.

Containerd est un environnement d'exécution de conteneur standard qui met l'accent sur la simplicité, la robustesse et la portabilité. containerd peut être responsable des éléments suivants :

  • Gérer le cycle de vie des conteneurs (de la création à la destruction)

  • Tirer/pousser les images de conteneurs

  • Gestion du stockage (gérer le stockage des données d'image et de conteneur)

  • Appelez runc pour exécuter le conteneur (interagissez avec les runtimes de conteneur tels que runc)

  • Gérer les interfaces réseau et les réseaux de conteneurs

2) installation en conteneur

Les étapes suivantes consistent à installer containerd sur Rocky8/RHEL8

Installez d'abord l'outil yum-utils

yum install -y yum-utils

Configurez l'entrepôt yum officiel de Docker, si vous l'avez fait, vous pouvez l'ignorer

yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo

Installer le conteneur

yum install containerd.io -y

Démarrez le service et configurez-le pour qu'il démarre automatiquement au démarrage

systemctl enable containerdsystemctl start containerd

3) outil de ligne de commande containerd ctr

Ctr est l'outil de ligne de commande de containerd, qui peut être utilisé pour exécuter et gérer des tâches dans containerd. ctr est principalement utilisé pour le développement et le débogage, pas dans un environnement de production. L'utilisation courante est la suivante :

Vérifier la version du conteneur

ctr version

tirer l'image

ctr images pull  docker.io/library/busybox:latest #其中images可以简写为i

Lister les miroirs locaux

ctr  images list #或者简写ctr i ls

modifier la balise

ctr i tag  docker.io/library/busybox:latest  busybox:latest

supprimer le miroir

ctr i rm docker.io/library/busybox:latest

exécuter le conteneur

ctr run  -d  busybox:latest busybox

Répertorier les conteneurs en cours d'exécution​​​​​​​​

ctr containers  list  #或者简写为ctr c  ls

Lister les tâches​​​​​​​​

ctr tasks  ls #或者简写ctr t  ls

Exécuter des commandes dans le conteneur

ctr t exec --exec-id 1860 busybox ls  #1860为任务ID

dans le conteneur

ctr t exec -t --exec-id 1860 busybox sh

Supprimer le conteneur​​​​​​

ctr t kill -s SIGKILL busybox #先杀掉进程ctr c  rm  busybox #再删除容器

En bref, il existe encore de nombreuses différences entre cet outil ctr et l'outil de ligne de commande de docker.

 

Je suppose que tu aimes

Origine blog.csdn.net/am_Linux/article/details/130141394
conseillé
Classement