Ajout Communication entre un conteneur et son hôte

This commit is contained in:
whirigoyen 2023-12-08 10:46:55 +01:00
parent cfd8eddd89
commit 4a71807404

View file

@ -189,6 +189,32 @@ $ docker inspect docker_gwbridge --format "{{ .Containers.f4bae02ef1407adc92f1aa
Note : De notre expérience, l'option --format peut se montrer capricieuse, notamment s'il y a en jeu des identifiant de containers. Une alternative est de parser du json manuellement avec [jq](https://wiki.evolix.org/TipsShell#json-avec-jq )
### Communication entre un conteneur et son hôte
#### Exposer un service du conteneur dans l'hôte
Le principe de Docker est de compartimenter ou isoler un service de l'hôte qui l'héberge.
Pour exposer un service du conteneur, on lancera le conteneur avec l'option `-p` pour mapper un port de l'hôte vers le conteneur :
~~~
$ docker run -p <HOST_INTERFACE_IP>:<HOST_PORT>:<CONTAINER_PORT> (…)
~~~
On utilisera de préférence `127.0.0.1` comme `<HOST_INTERFACE_IP>`. Si on a besoin d'exposer le service à l'extérieur, on mettra en place un reverse proxy qui gèrera la teminaison SSL, [avec Nginx par exemple](https://wiki.evolix.org/HowtoNginx#proxy_pass).
Documentation : <https://docs.docker.com/engine/reference/commandline/run/#publish>
#### Fournir un service de l'hôte au conteneur
Pour faire l'inverse, c'est-à-dire permettre au conteneur d'accèder à un service de l'hôte, il faut :
1. Faire écouter ce service sur l'IP de l'interface réseau Docker commune entre l'hôte et le conteneur (par défaut `docker0`).
2. Autoriser l'IP du conteneur sur ce port dans le firewall de l'hôte.
## Gérer les images
### Lister les images locales