Introdução ao linux containerd

Containerd é uma tecnologia de virtualização de contêiner, que foi retirada do docker e faz parte do padrão Open Container Interface (OCI).

O gerenciamento e a operação de contêineres do Docker são feitos basicamente por meio do containerd. Containerd é um tempo de execução de contêiner padrão da indústria, que enfatiza a simplicidade, robustez e portabilidade. Containerd pode gerenciar o ciclo de vida completo do contêiner no host: a transmissão e armazenamento de imagens de contêiner, a execução e gerenciamento de contêineres, armazenamento e rede, etc. Em detalhes, a Containerd é responsável pelas seguintes coisas:

• Gerenciar o ciclo de vida dos contêineres (desde a criação até a destruição do contêiner)

• Puxar / empurrar a imagem do contêiner

• Gerenciamento de armazenamento (gerenciar o armazenamento de dados de imagem e contêiner)

• Invoque runC para executar o contêiner (interagir com runC e outros tempos de execução do contêiner)

• Gerenciar interfaces e redes de rede de contêineres

Nota: O Containerd foi projetado para ser incorporado em um sistema maior, não usado diretamente por desenvolvedores ou usuários finais.

Podemos entender por que um container separado é necessário a partir dos seguintes pontos:

• Continue separando projetos do mecanismo docker geral (a ideia de projetos de código aberto)

• Pode ser usado por projetos como Kubernets CRI (generalizado)

• Estabelecer a base para uma ampla cooperação da indústria (assim como runC)

Após a instalação do docker, o containerd é instalado por padrão e o containerd contém os seguintes componentes de comando:

• Containerd: tempo de execução do contêiner de alto desempenho.

• ctr: o cliente da linha de comando do containerd.

• Runc: uma ferramenta de linha de comando para executar contêineres.

docker 、 containerd 、 docker-shim 、 runC 关系 :

docker: no que diz respeito ao próprio docker, ele inclui docker client e dockerd. dockerd é, na verdade, o encapsulamento de nível superior da API para operações relacionadas ao contêiner, voltado diretamente para os usuários operacionais.

Containerd: o que dockerd realmente chama é a interface api de containerd (implementada no modo rpc). Containerd é um componente de comunicação intermediário entre dockerd e runC.

docker-shim: um transportador para contêineres em execução real. Cada vez que um contêiner é iniciado, um novo processo docker-shim é iniciado. Ele cria um contêiner especificando três parâmetros: ID do contêiner, diretório de limite (containerd corresponde a um diretório de geração de contêiner) e binário de tempo de execução (o padrão é runC) para chamar a API de runC para criar um contêiner.

runC: Uma ferramenta de linha de comando para criar e executar contêineres de acordo com os padrões OCI.

app containerd

A imagem docker e a imagem containerd são comuns, mas o método de organização e o diretório de armazenamento são diferentes, o que torna os comandos docker e ctr incomuns, e cada um gerencia sua própria imagem e contêiner.

Além disso, o k8s também tem um comando de cliente crictl, o uso é basicamente o mesmo que docker, você pode ver o uso com crictl -h.

O arquivo de configuração padrão de containerd é /etc/containerd/config.toml, você pode usar o comando:

padrão de configuração de containerd

Configuração padrão de saída, consulte o documento https://github.com/containerd/containerd/blob/master/docs/ops.md

root = "/ var / lib / containerd" 
state = "/ run / containerd" 
oom_score = 0 
……

A chave raiz é usada para armazenar dados persistentes contidos.

A chave de estado é usada para armazenar dados temporários do containerd, e os dados são perdidos após a reinicialização do dispositivo.

Mostrar imagem de contêiner

imagens ctr sudo ls

Puxe a imagem hello-world

imagens sudo ctr pull docker.io/library/hello-world:latest

Nota: O caminho completo deve ser baixado, e a imagem hello-world padrão é baixada do dockerhub.

Execute o contêiner

sudo ctr run docker.io/library/hello-world:latestmy_hello-world 
sudo ctr run -t docker.io/library/busybox:latestmybusybox_demosh

 

 

Acho que você gosta

Origin blog.csdn.net/whatday/article/details/114095641
Recomendado
Clasificación