TP1: Add images

This commit is contained in:
nemunaire 2022-09-15 16:01:04 +02:00
commit 1ca35a1d57
6 changed files with 92 additions and 7 deletions

View file

@ -28,18 +28,50 @@ service soit lancé et écoute sur le port 8080. Est-ce le cas?
Non! Car le service est contenerisé! Il s'exécute dans son coin, sans
interférer avec son hôte.
![L'hôte n'arrive pas à joindre le port 8080](not-published-ports.png "L'hôte n'arrive pas à joindre le port 8080"){ width=70% }
### Redirection de ports
Nous pouvons rediriger le port avec l'argument <span lang="en-US">`-p dst_host:src_cntr`</span>:
Nous pouvons rediriger le port avec l'argument <span lang="en-US">`--publish dst_host:src_cntr`</span>:
<div lang="en-US">
```bash
docker container run -i -p 8080:8080 registry.nemunai.re/youp0m
docker container run --publish 8080:8080 registry.nemunai.re/youp0m
```
</div>
Cette fois, nous pouvons accéder au service.
Cet argument va faire effectuer à Docker une étape supplémentaire lorsqu'il
démarerra le conteneur: il va devoir mettre en place une redirection du port
de notre système local (8080) vers le port 8080 du conteneur.
![Le port 8080 est redirigé vers le conteneur](published-ports.png "Le port 8080 est redirigé vers le conteneur"){ width=70% }
::::: {.question}
#### Peut-on démarrer plusieurs conteurs utilisant le même port de notre système local? {-}
Si l'on essai de lancer deux fois la commande de notre dernier `run`, nous
obtenons l'erreur suivante:
<div lang="en-US">
```bash
42sh$ docker container run --publish 8080:8080 registry.nemunai.re/youp0m
docker: Error response from daemon: driver failed programming external connectivity on endpoint: Bind for 0.0.0.0:8080 failed: port is already allocated.
```
</div>
En effet, un port de la pile réseau de notre système ne peut être associé qu'à
un seul et unique processus. Puisqu'il a déjà été attribué à notre précédent
conteneur, il ne peut pas être à nouveau alloué.
En revanche, nous pouvons tout-à-fait lancer deux conteneurs `youp0m` sans
rediriger leur port 8080, car le conteneur ne partage pas la pile réseau de
l'hôte. Une nouvelle pile réseau est créée pour chaque conteneur.
:::::
Cette fois, nous pouvons bien accéder au service depuis notre navigateur.
Pour le moment, le service ne dispose d'aucune image à afficher, vous pouvez
utiliser cette syntaxe pour ajouter une image: