Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions exercice-1-port-web/COMMANDS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
# Commandes

```bash
# Exemple de structure attendue
docker run -d --name web-port -p 8080:80 nginx
docker run -d --name web-port -p 8080:80 nginx
docker port web-port
# 80/tcp -> 0.0.0.0:8080
# 80/tcp -> [::]:8080
docker run -d -p 127.0.0.1:8080:80 nginx
# Le EXPOSE décrit quel port doit être utilisé pour le conteneur, la commande le lance concrétement
docker rm -f web-port
```

Questions de reflexion
Quelle est la difference entre le port hote et le port conteneur ?
Pourquoi EXPOSE ne suffit-il pas a rendre le service accessible ?
Dans quel cas limiter l'ecoute a 127.0.0.1 est-il utile ?

- le port hote correspond à celui de la machine, le port conteneur est le port du conteneur par lequel on va passer pour accèder à celui ci
- expose est juste un einstruction à l'utilisateur ce n'est pas une commande
- pour isoler le conteneur des autres
18 changes: 18 additions & 0 deletions exercice-2-dns-bridge/COMMANDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,21 @@
# Exemple de structure attendue
docker network create test_net
```

```bash
docker network create test_net
docker run -d --name serveur --network test_net nginx
docker run --rm --network test_net alpine ping -c 3 serveur
docker network inspect test_net
# on peut ping depusi le bridge alors qu'il faut une commande avec le réseau créer
docker run --name test2 alpine & docker network connect test_net test2
docker network disconnect test_net test2 & docker network disconnect test_net serveur & docker network rm test_net test_net
```
Questions de reflexion
Pourquoi l'utilisation d'un reseau personnalise est-elle recommandee pour des applications multi-conteneurs ?
Quel avantage apporte le DNS interne Docker ?
Que permet docker network inspect dans une phase de diagnostic ?

- un réseau personnalisé permet de mieux gérer la communication entre plusieurs conteneurs
- le DNS interne permet à des conteneurs de communiquer simplement par leur nom
- elle permet de voir directement lesinformations précises du réseau
24 changes: 23 additions & 1 deletion exercice-3-web-db-network/COMMANDS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,29 @@
# Commandes

```bash
# Exemple de structure attendue
docker network create app_network
docker volume create db_volume
docker run -d --name mysql_db --network app_network -v db_volume -e MYSQL_ROOT_PASSWORD=rootpassword mysql
docker run -d --name webapp --network app_network -p 8080:80 nginx
docker network inspect app_network #les deux apparaissent bien
docker exec -it mysql_db mysql -uroot -prootpassword
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users (name) VALUES ('Alice');
SELECT * FROM users;
exit
docker rm -f mysql_db
docker run -d --name mysql_db --network app_network -v db_volume -e MYSQL_ROOT_PASSWORD=rootpassword mysql
docker exec -it mysql_db mysql -uroot -prootpassword
SELECT * FROM users;
exit
docker rm -f mysql_db & docker rm -f webapp & docker network rm app_network & docker volume rm db_volume
```

Questions de reflexion
Pourquoi la base de donnees n'a-t-elle pas besoin d'etre exposee vers l'hote dans cette architecture ?
En quoi le reseau personnalise simplifie-t-il la communication entre services ?
Que se passerait-il si le volume n'etait pas reutilise apres recreation du conteneur MySQL ?

- Parce que les conteneurs se trouvent sur le même réseau docker donc ils peuvent intéragir ensemble avec le DNS
- Avec le DNS qui permet d'appeler les services facilement
- Le conteneur sql démarrerais sans les données précédentes