, , ,

Docker : Accéder aux services de l’hôte depuis un conteneur

Selon les systèmes il est possible de résoudre l’hôte depuis le conteneur via le FQDN spécial host.docker.internal.

Si la résolution ne fonctionne pas, lors de l'installation de Docker un pont par défaut est créé (docker0 ou bridge0). La machine hôte possède une adresse fixe dans ce réseau (par défaut 172.17.0.1). Depuis le conteneur on peut utiliser cette adresse pour se connecter aux services écoutant sur l' hôte.

Autre possibilité, créer une variable d'environnement transmise au conteneur lors de sa création par exemple:

docker container run -it -e "DOCKER_HOST=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')" busybox:latest /bin/sh
 
# Depuis le shell du conteneur, on affiche les variables d'environnement
printenv 
 
HOSTNAME=beebdd3a7f95
. . .
DOCKER_HOST=172.17.0.1

Références