Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Compare containerd, Sandboxed-Container, and Docker runtimes

Última atualização: Jun 27, 2026

O ACK oferece suporte a containerd, Sandboxed-Container e Docker. Compare modelos de isolamento, limites de uso e arquitetura de implantação para escolher o runtime adequado à sua carga de trabalho.

Importante

O runtime Docker foi descontinuado. Se o seu cluster executa Docker, migre para containerd.

Como os runtimes de contêiner se integram a um nó do Kubernetes

Um runtime de contêiner gerencia o ciclo de vida dos contêineres em cada nó. O kubelet comunica-se com o runtime por meio da Container Runtime Interface (CRI). A escolha do runtime define o modelo de isolamento, os tipos de nó compatíveis e as ferramentas de CLI disponíveis.

O ACK oferece suporte aos seguintes runtimes:

  • containerd — Recomendado para a maioria das cargas de trabalho. Leve, compatível diretamente com a CRI e sem daemon intermediário.

  • Sandboxed-Container — Usa VMs leves (runV) para executar cada pod em um kernel isolado.

  • Docker (descontinuado) — Migre para containerd.

Recursos e limites

Recurso

containerd

Sandboxed-Container

Docker (manutenção descontinuada)

Tipos de cluster

  • ACK managed clusters

  • ACK dedicated clusters

  • ACK Edge clusters

  • ACK managed clusters

  • ACK dedicated clusters

Todos os tipos de clusters ACK

Versão do Kubernetes

1.20 ou posterior

1.16 ou posterior

1.22 e anteriores

Tipo de nó

  • ECS

  • Nós autogerenciados (ACK Edge clusters)

Apenas famílias de ECS Bare Metal Instance

ECS

Sistema operacional do nó

O Container Service for Kubernetes fornece imagens públicas para sistemas operacionais como Alibaba Cloud Linux 3 versão otimizada para contêineres, ContainerOS, Alibaba Cloud Linux 3, Ubuntu e Windows. Para mais informações, consulte Sistemas operacionais.

  • Alibaba Cloud Linux

  • CentOS

Engine de contêiner

containerd

containerd

Docker

Monitoramento

Compatível

Compatível

Compatível

Coleta de logs de contêiner

Compatível

Injeção manual de sidecar. Consulte Usar CRDs para coletar logs de texto de contêiner no modo sidecar.

Compatível

Coleta de stdout de contêiner

Compatível

Compatível

Compatível

RuntimeClass

Não compatível

Compatível (runV)

Não compatível

Agendamento de pods

Nenhuma configuração necessária.

Adicione as seguintes configurações:

  • Para Kubernetes 1.14.x, adicione ao nodeSelector:

    alibabacloud.com/sandboxed-container: Sandboxed-Container.runv
  • Para 1.16.x e posteriores, nenhuma configuração adicional é necessária.

Nenhuma configuração necessária.

HostNetwork

Compatível

Não compatível

Compatível

Disco de dados do nó

Opcional

Obrigatório. Mínimo de 200 GiB.

Opcional

Plug-in de rede

  • Flannel

  • Terway (exceto ACK Edge clusters)

  • Flannel

  • Com o Terway, o modo ENI exclusivo e o DataPath v2 não são compatíveis.

  • Flannel

  • Terway

Modo kube-proxy

  • iptables

  • IPVS

  • iptables

  • IPVS

  • iptables

  • IPVS

Plug-in de volume

Plug-in CSI (exceto ACK Edge clusters)

Plug-in CSI

Plug-in CSI

Sistema de arquivos raiz do contêiner

OverlayFS

OverlayFS (com cota de disco)

OverlayFS

Nota

Docker e Sandboxed-Container não podem compartilhar o mesmo nó. Para usar ambos em um cluster, crie pools de nós separados para cada runtime.

Nota

O Sandboxed-Container executa sobre o containerd. Ao inspecionar nós com kubectl get node ou no console do ACK, o runtime aparece como containerd.

Arquitetura de implantação

A cadeia de chamadas do kubelet até os contêineres varia conforme o runtime. Menos camadas resultam em menor sobrecarga e menos complexidade.

Runtime

Arquitetura de implantação

Docker

kubelet
└── dockerd
    └── containerd
        └── containerd-shim
            └── runC containers

containerd

kubelet
└── containerd
    └── containerd-shim
        └── runC containers

Sandboxed-Container v2

kubelet
├── (CRI) containerd
│   ├── containerd-shim
│   │   └── runC containers
│   └── containerd-shim-runv2
│       └── runV sandboxed containers

O containerd elimina a camada dockerd e permite que o kubelet acesse diretamente a CRI. O Sandboxed-Container v2 estende o containerd com o containerd-shim-runv2, que executa pods em VMs leves via runV para garantir isolamento no nível do kernel, coexistindo com contêineres runC padrão.

Comandos de CLI para containerd e Docker

Os runtimes containerd e Docker usam ferramentas de CLI diferentes. Use crictl para containerd, pois opera no nível da CRI. O ctr é uma alternativa de baixo nível do containerd.

Operação

crictl (recomendado para containerd)

ctr (CLI de baixo nível do containerd)

docker

Listar contêineres

crictl ps

ctr -n k8s.io c ls

docker ps

Inspecionar contêineres

crictl inspect <container>

ctr -n k8s.io c info <container>

docker inspect <container>

Visualizar logs de contêiner

crictl logs <container>

N/A

docker logs <container>

Executar comandos em contêineres

crictl exec <container>

N/A

docker exec <container>

Anexar a contêineres

crictl attach <container>

N/A

docker attach <container>

Visualizar uso de recursos

crictl stats <container>

N/A

docker stats <container>

Criar contêineres

crictl create <container>

ctr -n k8s.io c create <container>

docker create <container>

Iniciar contêineres

crictl start <container>

ctr -n k8s.io run <container>

docker start <container>

Parar contêineres

crictl stop <container>

ctr -n k8s.io task pause <container>

docker stop <container>

Excluir contêineres

crictl rm <container>

ctr -n k8s.io c del <container>

docker rm <container>

Listar imagens

crictl images

ctr -n k8s.io i ls <image>

docker images

Inspecionar imagens

crictl inspecti <image>

N/A

docker inspect <image>

Baixar imagens

crictl pull <image>

ctr -n k8s.io i pull <image>

docker pull <image>

Enviar imagens

N/A

ctr -n k8s.io i push <image>

docker push <image>

Excluir imagens

crictl rmi <image>

ctr -n k8s.io i rm <image>

docker rmi <image>

Listar pods

crictl pods

N/A

N/A

Inspecionar pods

crictl inspectp <pod name>

N/A

N/A

Iniciar pods

crictl runp <pod name>

N/A

N/A

Parar pods

crictl stopp <pod name>

N/A

N/A

Próximos passos

Referências