Dim-Jones Blog
Retour au blog

Quick-fix OpenMediaVault, Docker et Wireguard

2 min de lecture

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.

Partager
Dim-Jones

Dim-Jones

Agence d'ingenierie numerique specialisee en DevOps, developpement logiciel et IA.

Visiter dim-jones.com