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
11 changes: 10 additions & 1 deletion exercice-1-port-web/COMMANDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,13 @@
```bash
# Exemple de structure attendue
docker run -d --name web-port -p 8080:80 nginx
```

docker ps

docker port web-port

docker rm -f web-port

docker run -d --name web-port -p 127.0.0.1:8080:80 nginx

docker rm -f web-port
8 changes: 8 additions & 0 deletions exercice-1-port-web/REPONSES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
1.
Le port conteneur est le port utilisé par l'application à l'intérieur du conteneur tendis que le port hôte est celui de la machine qui permet d'accéder au service depuis l'extérieur.

2.
Parce qu'il sert seulement à indiquer quel port l'application utilise dans l'image.

3.
Utile pour des tests, et protege l'acces
23 changes: 22 additions & 1 deletion exercice-2-dns-bridge/COMMANDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,25 @@
```bash
# Exemple de structure attendue
docker network create test_net
```

# Lancer le conteneur serveur sur ce réseau
docker run -d --name serveur --network test-net nginx

# Tester la résolution DNS depuis un conteneur Alpine
docker run --rm --network test-net alpine ping -c 2 serveur

# Inspecter le réseau
docker network inspect test-net

# Test rapide sur le réseau bridge par défaut
docker run --rm --network bridge alpine ping -c 2 serveur

# Connecter un conteneur existant à chaud
docker run -d --name temp-nginx nginx
docker network connect test-net temp-nginx
docker run --rm --network test-net alpine ping -c 2 temp-nginx

# Déconnecter le conteneur et supprimer le réseau
docker network disconnect test-net temp-nginx
docker rm -f serveur temp-nginx
docker network rm test-net
8 changes: 8 additions & 0 deletions exercice-2-dns-bridge/REPONSES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
1.
Pour que les conteneurs puissent communiquer par nom.

2.
On peut mettre un conteneur avec son nom plutot que son ip

3.
Sers a voir la configuration du reseau et voir les conteneurs connectes
28 changes: 27 additions & 1 deletion exercice-3-web-db-network/COMMANDS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,33 @@
# 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:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root123 -e MYSQL_DATABASE=testdb mysql:8.0

docker run -d --name webapp --network app_network -p 8080:80 nginx:latest

docker network inspect app_network

docker exec -i mysql_db mysql -uroot -proot123 testdb -e "CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255)); INSERT INTO users (name) VALUES ('Alice Dupont'), ('Bob Martin');"

docker exec -i mysql_db mysql -uroot -proot123 testdb -e "SELECT * FROM users;"

docker stop mysql_db

docker rm mysql_db

docker run -d --name mysql_db --network app_network -v db_volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root123 -e MYSQL_DATABASE=testdb mysql:8.0

docker exec -i mysql_db mysql -uroot -proot123 testdb -e "SELECT * FROM users;"

docker stop webapp mysql_db

docker rm webapp mysql_db

docker network rm app_network

docker volume rm db_volume
```
9 changes: 9 additions & 0 deletions exercice-3-web-db-network/REPONSES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
1.
Parce que les conteneurs connectés au même réseau Docker personnalisé peuvent communiquer par leur nom. Seul le service web needs d'être exposé pour l'utilisateur. La base de données reste isolée pour la sécurité.

2.
Le réseau personnalisé fournit une résolution DNS automatique par nom de conteneur (mysql_db se résout automatiquement), isolant les services et évitant de mapper les ports internes. C'est plus simple que de gérer les adresses IP et ports manuellement.

3.
Les données seraient perdues. Sans réutiliser le volume, le nouveau conteneur MySQL serait complètement vide. Le volume est ce qui persiste les données au-delà du cycle de vie du conteneur.