Lorsque vous utilisez OpenMediaVault (OMV) 6 comme NAS accessible exclusivement via un VPN Wireguard, Docker peut refuser de demarrer avec une erreur frustrante. Voici comment diagnostiquer et corriger ce conflit.
Problematique
Docker refuse de demarrer avec :
docker.socket: Failed with result 'service-start-limit-hit'
Le lancement manuel du service retourne :
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
Contexte
OpenMediaVault (OMV) est une solution NAS open-source basee sur Debian. La version 6 utilise le noyau Linux 6. Ses services peuvent etre etendus via OMV-extras, qui s’appuie sur des conteneurs Docker.
Wireguard est utilise ici pour restreindre l’acces au NAS exclusivement via VPN. Il fonctionne avec des regles de pare-feu pour la plage IP 10.0.0.0/8, ce qui est la source du conflit.
Analyse
Le probleme provient de conflits entre les configurations IPTables et NFTables. Les regles de pare-feu de Wireguard utilisent NFTables, tandis que Docker attend IPTables.
Confirmer le diagnostic
Arreter Wireguard et redemarrer Docker confirme le conflit :
# Arreter Wireguard
sudo service wg-quick@wg0 stop
# Demarrer Docker - ca fonctionne !
sudo service docker start
# Tester Docker
docker run -it ubuntu:latest
Cependant, redemarrer Wireguard ensuite casse la connectivite reseau :
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/":
dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:36009->[::1]:53:
read: connection refused.
La solution
Forcez Debian a utiliser les IPTables legacy au lieu de NFTables, permettant a Docker et Wireguard de coexister :
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
Redemarrez les deux services :
sudo service wg-quick@wg0 start
sudo service docker start
Verifiez que tout fonctionne :
docker run -it alpine sh
Sortie attendue :
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
c158987b0551: Pull complete
Digest: sha256:...
Status: Downloaded newer image for alpine:latest
/ #
Docker et Wireguard coexistent desormais sans conflit.