Aide-mémoire5 min de lecture

Aide-mémoire : commandes kubectl vs Docker CLI côte à côte

SFEIR Institute

Points clés

  • kubectl opère sur des objets Kubernetes (Pods, Deployments), pas directement sur des conteneurs
  • Privilegiez toujours kubectl apply (declaratif) plutot que les commandes imperatives pour garantir la reproductibilite
TL;DR : Cet aide-mémoire kubectl commandes vous permet de passer rapidement de Docker CLI à Kubernetes. Chaque commande Docker trouve son équivalent kubectl avec syntaxe exacte, exemples et pièges courants. Imprimez cette référence et gardez-la sous la main.

Ce sujet est au cœur de la formation LFD459 Kubernetes pour les développeurs d'applications.


Pourquoi maîtriser kubectl quand vous connaissez Docker ?

Selon le CNCF Annual Survey 2025, 82% des utilisateurs de conteneurs exécutent Kubernetes en production. Votre expertise Docker reste précieuse, mais vous devez maintenant traduire vos réflexes vers kubectl.

À retenir : kubectl et Docker CLI partagent des concepts similaires (conteneurs, images, logs), mais kubectl opère sur des objets Kubernetes (Pods, Deployments, Services) et non directement sur des conteneurs.

Pour approfondir les fondamentaux, consultez notre Formation Kubernetes : Guide Complet.


Commandes kubectl essentielles vs Docker CLI : tableau de référence rapide

ActionDocker CLIkubectl
Lister les conteneurs/podsdocker pskubectl get pods
Lister tout (incluant arrêtés)docker ps -akubectl get pods --all-namespaces
Voir les détailsdocker inspect kubectl describe pod
Logs en temps réeldocker logs -f kubectl logs -f
Shell interactifdocker exec -it shkubectl exec -it -- sh
Supprimerdocker rm kubectl delete pod
Lister les imagesdocker imageskubectl get pods -o jsonpath='{.spec.containers[*].image}'

Mémorisez cette différence clé : Docker gère des conteneurs individuels, kubectl orchestre des Pods (groupes de conteneurs).

Pour une comparaison approfondie des orchestrateurs, consultez Kubernetes vs Docker Swarm : quel orchestrateur choisir en 2026 ?.


Gestion des Pods : commandes kubectl que vous utiliserez quotidiennement

Création et déploiement

# Docker : lancer un conteneur
docker run -d --name nginx -p 80:80 nginx:1.25

# kubectl : créer un Pod (méthode impérative)
kubectl run nginx --image=nginx:1.25 --port=80

# kubectl : créer via fichier YAML (méthode déclarative recommandée)
kubectl apply -f nginx-pod.yaml

Privilégiez toujours kubectl apply pour la reproductibilité. Vous pouvez explorer les Tutoriels et guides pratiques Kubernetes pour des exemples complets.

Inspection et debugging

# État rapide de tous vos pods
kubectl get pods -o wide

# Détails complets d'un pod
kubectl describe pod nginx-7fb9

# Pod en CrashLoopBackOff ? Vérifiez l'état :
kubectl describe pod <name> | grep -A5 "State:"
kubectl logs <name> --previous

# Events récents du cluster
kubectl get events --sort-by='.lastTimestamp' | tail -20
À retenir : kubectl describe vous donne les Events en bas de la sortie. Consultez-les systématiquement pour diagnostiquer les échecs de scheduling ou de pull d'image.

Gestion des images et builds : docker vs kubectl référence rapide

ActionDockerkubectl / Kubernetes
Build imagedocker build -t app:v1 .N/A (utilisez docker/buildah/kaniko)
Push imagedocker push registry/app:v1N/A (géré hors cluster)
Pull imagedocker pull nginxAutomatique au déploiement
Voir image d'un podN/Akubectl get pod -o jsonpath='{.spec.containers[*].image}'

Selon DevOpsCube, vos images microservices doivent rester sous 200MB. Les multi-stage builds réduisent les images de 800MB à 15-30MB (Cloud Native Now).

Optimisez vos Dockerfiles avant de déployer sur Kubernetes. Comparez les options dans notre Tableau comparatif des distributions Kubernetes en 2026.


Networking et exposition de services

ActionDockerkubectl
Exposer un portdocker run -p 8080:80kubectl expose pod nginx --port=80 --type=NodePort
Lister les portsdocker port kubectl get svc
Réseau internedocker network createServices, NetworkPolicies
DNS interne--link (déprécié)..svc.cluster.local
# Créer un Service pour exposer votre application
kubectl expose deployment nginx --port=80 --target-port=80 --type=ClusterIP

# Accéder temporairement depuis votre machine
kubectl port-forward svc/nginx 8080:80

Utilisez port-forward pour le debugging local, jamais en production. Pour les services managés, consultez EKS vs GKE vs AKS : comparatif complet.


Volumes et persistance : équivalences kubectl

Dockerkubectl / Kubernetes
docker volume createkubectl apply -f pvc.yaml
-v /host:/containerhostPath (déconseillé en prod)
--mount type=bindPersistentVolumeClaim
docker volume lskubectl get pv,pvc
# PersistentVolumeClaim minimal
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data-pvc
spec:
  accessModes: ["ReadWriteOnce"]
  resources:
    requests:
      storage: 5Gi
# Vérifier l'état de vos volumes
kubectl get pvc
kubectl describe pvc data-pvc
À retenir : En Kubernetes, séparez toujours le stockage (PV) de la demande (PVC). Cela permet la portabilité entre environnements.

Commandes de déploiement et mise à l'échelle

# Docker Compose : scale
docker-compose up --scale web=3

# kubectl : créer un Deployment avec 3 replicas
kubectl create deployment nginx --image=nginx:1.25 --replicas=3

# Scaler un Deployment existant
kubectl scale deployment nginx --replicas=5

# Mise à jour rolling
kubectl set image deployment/nginx nginx=nginx:1.26

# Rollback si problème
kubectl rollout undo deployment/nginx

Vérifiez toujours le statut du rollout :

kubectl rollout status deployment/nginx
kubectl rollout history deployment/nginx

Pour préparer la certification CKAD, le score de passage est de 66% en 2 heures (Linux Foundation).


Pièges courants : ce que vous devez éviter

Erreur fréquenteSolution
Oublier -- avant la commande execkubectl exec -it pod -- /bin/sh (pas kubectl exec -it pod /bin/sh)
Confondre pod et deploymentSupprimez le Deployment, pas le Pod (il sera recréé)
Ignorer le namespaceAjoutez -n ou --all-namespaces
Pas de contexte configurékubectl config use-context
# Erreur : commande ignorée
kubectl exec -it nginx sh  # ❌

# Correct : double tiret obligatoire
kubectl exec -it nginx -- sh  # ✅

# Supprimer proprement une application
kubectl delete deployment nginx  # ✅ (pas kubectl delete pod nginx-xxx)

Comme le souligne TealHQ : "Don't let your knowledge remain theoretical - set up a real Kubernetes environment to solidify your skills."

Consultez le parcours administrateur système Kubernetes pour structurer votre apprentissage.


Contextes et configuration kubectl

# Voir votre configuration actuelle
kubectl config view
kubectl config current-context

# Changer de cluster/contexte
kubectl config use-context production-cluster

# Définir un namespace par défaut
kubectl config set-context --current --namespace=app-namespace
À retenir : Configurez un namespace par défaut pour chaque projet. Vous éviterez les erreurs de déploiement dans le mauvais environnement.

Pour les environnements cloud managés, explorez Amazon EKS en production : retour d'expérience.


Ressources et quotas

# Voir la consommation CPU/mémoire des pods
kubectl top pods
kubectl top nodes

# Décrire les limites d'un namespace
kubectl describe resourcequota -n <namespace>

Comparez les différentes approches dans notre hub Comparatifs et alternatives Kubernetes.


Passez à l'action : formations certifiantes

Cet aide-mémoire kubectl commandes vous donne les bases. Pour maîtriser Kubernetes en situation réelle et obtenir votre certification :

Selon le CNCF Training Report, 104 000 personnes ont passé l'examen CKA avec une croissance de 49% par an. Rejoignez-les.