Vai al contenuto

Applicare patch a un host Docker

Traduzione automatica dell'originale francese.

Applicare gli aggiornamenti dei pacchetti senza interrompere i container.

Principio

Gli aggiornamenti di sicurezza vengono applicati automaticamente, senza una verifica preventiva. Ciò che viene verificato è il risultato: quali servizi dipendevano dal pacchetto aggiornato e se sono ancora funzionanti.

Gli otto host Linux del parco vengono patchati automaticamente durante la notte (rilevato il 2026-10-06: vm-claude, vm-docker, vm-addons, vm-agents, vm-compute-01, vm-compute-02, vps-fr-ovh; la pila dell'hypervisor rimane in fase di patch manuale); i riavvii, quando necessari, avvengono tra le 00:05 e le 03:00. Un pacchetto rimosso genera una notifica che indica l'azione di sostituzione, non solo la rimozione.

Procedura manuale

HOST="ssh -p <port-ssh> <user>@vm-docker"

# 1. ce qui est en attente
$HOST "sudo apt-get update -qq && apt list --upgradable 2>/dev/null | tail -n +2"

# 2. appliquer
$HOST "sudo DEBIAN_FRONTEND=noninteractive apt-get -y upgrade"

# 3. un redémarrage est-il nécessaire ?
$HOST "test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs || echo 'aucun redemarrage requis'"

# 4. quels services tournent encore sur des bibliothèques supprimées ?
$HOST "sudo needrestart -b"

apt upgrade può essere un riavvio di dockerd mascherato

Su un host in cui il pacchetto docker-ce viene aggiornato, l'aggiornamento riavvia il demone — e quindi, in base alla politica di riavvio, tutto ciò che gira sopra. Su vm-compute-01, che ha la GPU e circa sessanta container, questo non è mai insignificante.

Verificare prima: apt list --upgradable | grep -E 'docker|containerd'.

Controllo post-aggiornamento

# aucun conteneur ne doit être resté au tapis
$HOST "docker ps -a --filter 'status=exited' --format '{{.Names}}\t{{.Status}}'"

# et la politique de redémarrage doit être celle du fichier Compose
$HOST "docker inspect \$(docker ps -q) \
        --format '{{.Name}} {{.HostConfig.RestartPolicy.Name}}' | grep -v 'on-failure'"

Un aggiornamento importante disabilita i repository di terze parti

Un do-release-upgrade disabilita i file .list dei repository di terze parti rinominandoli in .save. È stato riscontrato che i repository Docker e Tailscale sono rimasti disabilitati per tre mesi, senza alcun avviso — la macchina appariva aggiornata, e lo era, per i soli repository ancora attivi.

Dopo ogni aggiornamento:

$HOST "ls /etc/apt/sources.list.d/*.save 2>/dev/null"

Cosa riavvia oltre a se stesso

Prima di effettuare la riparazione, è necessario capire a quale servizio appartiene il componente interessato. Ad esempio: riavviare il contenitore VPN del gruppo di download interrompe la rete di tutti i contenitori che condividono la stessa rete — questi non si riavviano automaticamente, e docker ps li mostra come attivi.

Dernière vérification de cette page : 2026-09-08