Errore Docker permission denied su sysctl: come risolvere
Come risolvere l’errore Docker permission denied su sysctl net.ipv4.ip_unprivileged_port_start causato da containerd.
Come risolvere l’errore Docker permission denied su sysctl net.ipv4.ip_unprivileged_port_start causato da containerd.
Durante l’avvio di un container Docker su sistemi Linux recenti, potresti imbatterti in un errore critico che impedisce completamente l’esecuzione dei container.
L’errore è particolarmente insidioso perché non dipende dalla configurazione del container, ma da una incompatibilità tra Docker e containerd.
L’errore tipico è il seguente:
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: open sysctl net.ipv4.ip_unprivileged_port_start file: reopen fd 8: permission denied: unknown
In questa guida vediamo perché accade e come risolverlo in modo definitivo su Ubuntu, Debian e Proxmox (CT Debian).
Il problema è causato da una versione di containerd non compatibile con il runtime Docker installato.
Alcune versioni più recenti di containerd introducono cambiamenti nella gestione dei sysctl, che causano un permission denied durante l’inizializzazione del container.
Questo errore non è risolvibile modificando permessi, sysctl o Dockerfile.
La soluzione consiste nel downgrade controllato di containerd a una versione stabile e compatibile.
La versione funzionante e verificata è: containerd.io 1.7.28
Su Ubuntu, è sufficiente installare esplicitamente la versione corretta di containerd:
sudo apt update
sudo apt install --allow-downgrades containerd.io=1.7.28-1~ubuntu.25.04~plucky
Dopo l’installazione, riavvia Docker:
sudo systemctl restart docker
Per Debian (Bookworm), usa questo comando:
sudo apt update
sudo apt install containerd.io=1.7.28-1~debian.12~bookworm
Anche in questo caso, riavvia Docker:
sudo systemctl restart docker
Se stai utilizzando Proxmox VE con container LXC (CT) basati su template Debian, il problema si manifesta allo stesso modo.
La soluzione per Proxmox CT Debian è identica a Debian standard.
All’interno del container Debian esegui:
apt update apt install containerd.io=1.7.28-1~debian.12~bookworm
Non sono necessarie modifiche lato host Proxmox.
Per verificare che tutto funzioni correttamente:
docker run --rm hello-world
Se il container parte correttamente, il problema è risolto.
Questo errore Docker può sembrare complesso, ma la causa è chiara: una regressione di compatibilità in containerd. Forzando la versione 1.7.28, puoi ripristinare immediatamente il corretto funzionamento di Docker su Ubuntu, Debian e Proxmox.