Conteneurs

Isolation et portabilite pour la prod.

Choisir la bonne technologie selon vos besoins : Docker, LXC, systemd-nspawn ou KVM. Focus sur la securite, les volumes, et le networking.

Docker

Base solide et usage production

Cycle de vie

docker ps -a
docker run -d --name api -p 8080:8080 api:latest
docker logs -f api
docker exec -it api /bin/sh

Toujours superviser les logs et la sante applicative.

Reseau et volumes

docker network ls
docker network create backend
docker volume create dbdata
docker run -v dbdata:/var/lib/postgresql data:latest

Isoler les reseaux internes et separer clairement les volumes.

Images

Reproductibles et minimalistes

Build multi-stage

FROM golang:1.22 AS build
WORKDIR /src
RUN go build -o app

FROM debian:stable-slim
COPY --from=build /src/app /usr/local/bin/app
CMD ["app"]

Les multi-stage reduisent drastiquement la taille des images.

Rootless

dockerd-rootless-setuptool.sh install
export DOCKER_HOST=unix:///run/user/1000/docker.sock
Docker --context rootless ps

Le rootless diminue l'impact d'une compromission.

Scan d'images

docker scout cves image:latest
trivy image image:latest

Integrer un scan CVE avant chaque deploy.

systemd-nspawn

Conteneurs legers, integres a systemd

Creation d'une machine

sudo debootstrap stable /var/lib/machines/debian
sudo systemd-nspawn -D /var/lib/machines/debian
sudo machinectl list

nspawn est parfait pour des environnements de test rapides.

Reseau et isolation

sudo systemd-nspawn -D /var/lib/machines/debian --private-network
sudo machinectl shell debian

L'isolation reseau est simple a activer, utile pour les tests.

LXC

Conteneurs systemes complets

Creation rapide

sudo apt install lxc lxc-templates
sudo lxc-create -n debian -t download
sudo lxc-start -n debian
sudo lxc-info -n debian

LXC est utile quand on veut une VM legere mais complete.

Storage et config

sudo lxc-config show
sudo lxc-attach -n debian
sudo lxc-stop -n debian

Modifier la config via /var/lib/lxc pour ajuster les limites.

KVM

Virtualisation complete et performante

Installation

sudo apt install qemu-kvm libvirt-daemon
sudo systemctl enable --now libvirtd

libvirt offre une couche d'orchestration simple.

Provisioning

virt-install --name debian --ram 2048 --disk size=20 --cdrom debian.iso
virsh list --all

virt-install cree des VMs sans interface graphique.

Reseau virtuel

virsh net-list --all
virsh net-start default
virsh net-autostart default

Gerer les bridges pour exposer ou isoler les VMs.

Securite conteneurs

Limiter l'impact d'une fuite

Principes clefs

  • Executer en non-root autant que possible
  • Limiter les capabilities Linux
  • Utiliser read-only rootfs
  • Isoler reseaux internes

Exemples pratiques

docker run --read-only --cap-drop ALL --tmpfs /tmp app:latest
docker run --user 1000:1000 app:latest
docker run --network backend app:latest

Orchestration

Du compose a la prod

Docker Compose

docker compose up -d
docker compose logs -f
docker compose down

Compose est ideal pour regrouper services, reseaux et volumes.

Principes k8s

  • Pods pour regrouper les conteneurs
  • Deployments pour assurer la disponibilite
  • Services pour exposer les apps
  • ConfigMaps et Secrets pour la config

Kubernetes poste dev

Installer, utiliser, monitorer

Installation locale

Pour un poste de developpeur, minikube ou kind suffisent. Elles permettent un cluster local rapide, sans infra externe.

# Option 1: minikube
sudo apt install kubectl
minikube start --driver=docker
kubectl get nodes

# Option 2: kind
sudo apt install kubectl
kind create cluster --name dev
kubectl get nodes

Usage quotidien

Organiser les namespaces par projet, versionner les manifests, et garder un cycle deploy/rollback simple.

kubectl create ns demo
kubectl -n demo apply -f k8s/
kubectl -n demo get pods
kubectl -n demo logs -f deploy/app
kubectl -n demo rollout status deploy/app

Observabilite locale

Sur un cluster de dev, metrics-server suffit pour une vue CPU/RAM. Pour aller plus loin, ajouter Prometheus + Grafana.

kubectl top nodes
kubectl top pods -n demo

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

Debug et monitoring

Garder une boite a outils simple pour diagnostiquer rapidement.

kubectl describe pod pod-name -n demo
kubectl get events -n demo --sort-by=.metadata.creationTimestamp
kubectl port-forward svc/app 8080:80 -n demo

Stack Prometheus/Grafana

Pour un poste dev, kube-prometheus-stack offre metrics, alerting et dashboards sans complexite excessive.

# Helm requis
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install kps prometheus-community/kube-prometheus-stack -n monitoring --create-namespace
kubectl -n monitoring port-forward svc/kps-grafana 3000:80

Logs et traces

Pour un setup complet, ajouter Loki (logs) et Tempo (traces). Garder une retention faible sur un poste local.

# Loki
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install loki grafana/loki-stack -n monitoring

# Tempo
helm install tempo grafana/tempo -n monitoring
kubectl -n monitoring port-forward svc/tempo 3100:3100

Ressources

Cgroups et limites

Limiter CPU et RAM

docker run --memory 512m --cpus 1.5 --name api api:latest
systemd-run --unit sandbox --property=MemoryMax=1G --property=CPUQuota=150% /bin/sleep 60

Des limites claires evitent qu'un conteneur degrade le host.

Observer les quotas

systemd-cgtop
cat /sys/fs/cgroup/system.slice/docker-*.scope/memory.current
cat /sys/fs/cgroup/system.slice/docker-*.scope/cpu.stat

Les stats cgroup montrent les pics et les throttles.

Mise a jour quotidienne

Ajout du 2025-12-23

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2025-12-24

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2025-12-25

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2025-12-26

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2025-12-27

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2025-12-28

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2025-12-29

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2025-12-30

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2025-12-31

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-01

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-02

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-03

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-04

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-05

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-06

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-07

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-01-08

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-01-09

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-10

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-11

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-12

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-13

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-14

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-15

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-01-16

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-01-17

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-18

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-19

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-20

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-21

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-22

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-23

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-01-24

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-01-25

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-01-26

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-01-27

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-01-28

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-01-29

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-01-30

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-01-31

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-02-01

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-02-02

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-02-03

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data

Mise a jour quotidienne

Ajout du 2026-02-04

Observabilite avancee

Cette section est ajoutee automatiquement et vise un public confirme.

  • Mesurer CPU, memoire, I/O
  • Identifier les hotspots avec perf
  • Tracer les appels systeme critiques

Commandes

htop
sudo perf top
sudo strace -fp 1234

Mise a jour quotidienne

Ajout du 2026-02-05

Conteneurs: hygiene de prod

Cette section est ajoutee automatiquement et vise un public confirme.

  • Isoler reseaux internes
  • Executer en non-root
  • Limiter les capabilities

Commandes

docker ps -a
docker run --read-only --cap-drop ALL app:latest
docker network ls

Mise a jour quotidienne

Ajout du 2026-02-06

Kubernetes poste dev

Cette section est ajoutee automatiquement et vise un public confirme.

  • Cluster local via kind ou minikube
  • Namespaces par projet
  • Monitoring via metrics-server

Commandes

kind create cluster --name dev
kubectl get nodes
kubectl top pods -A

Mise a jour quotidienne

Ajout du 2026-02-07

Depannage: check rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Lire journalctl en priorite
  • Verifier systemctl --failed
  • Identifier les saturations disque

Commandes

journalctl -p err -S "today"
systemctl --failed
df -hT

Mise a jour quotidienne

Ajout du 2026-02-08

Commandes utiles

Cette section est ajoutee automatiquement et vise un public confirme.

  • Chaines pipeline claires
  • Utiliser awk pour les rapports
  • Preferer rg pour les recherches

Commandes

rg -n "error" /var/log
ps aux | awk '{print ,,}' | head
sort | uniq -c | sort -nr

Mise a jour quotidienne

Ajout du 2026-02-09

DNS: resolution fiable et debug

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier la chaine avec dig +trace
  • Observer resolvectl et cache local
  • Documenter les resolvers critiques

Commandes

dig +trace debian.org
resolvectl status
sudo systemctl restart systemd-resolved

Mise a jour quotidienne

Ajout du 2026-02-10

Audit securite rapide

Cette section est ajoutee automatiquement et vise un public confirme.

  • Inventorier les ports exposes
  • Verifier les comptes privilegiés
  • Controler les binaires SUID

Commandes

ss -tulpen
sudo awk -F: '==0 {print }' /etc/passwd
sudo find / -perm -4000 -type f 2>/dev/null

Mise a jour quotidienne

Ajout du 2026-02-11

Btrfs/ZFS: integrite et snapshots

Cette section est ajoutee automatiquement et vise un public confirme.

  • Verifier l etat des pools
  • Lancer un scrub regulier
  • Creer des snapshots horodates

Commandes

sudo btrfs scrub start -Bd /
sudo zpool status
sudo zfs snapshot tank/data