docker_TP/README.md
2024-03-19 23:08:54 +01:00

4.4 KiB

TP 1

TP 2

TP 4

Étape 1 : Créer deux dossiers : "web" et "nginx"

Étape 2 : Mettre le fichier index.php dans le dossier web et le fichier default.conf dans le dossier nginx

Étape 3 : Pour déployer le server REDIS il faut ajouter ceci dans le fichier docker-compose.yml

services:
	redis:
	    image: redis/redis-stack
	    ports:
	      - "6379:6379"
	    volumes:
	      - redis_data:/data
	    restart: always

Étape 4 : Pour déployer le server REDISINSIGHT il faut ajouter ceci dans le fichier docker-compose.yml

services:
	redisinsight:
	    image: redis/redisinsight
	    ports:
	      - "5540:5540"
	    restart: always
	    volumes:
	      - redisinsight_data:/db

⚠️ Attention ne pas oublier de mettre à la fin du ficher un bloc volumes

volumes:
  redis_data:
  redisinsight_data:

Étape 5 : Pour déployer le server PHP il faut ajouter ceci dans le fichier docker-compose.yml

services:
	php:
	    image: windok/php-redis
	    restart: always
	    volumes:
	      - ./web:/usr/share/nginx/html
	    environment:
	      NOM : "moguljak"
	      PRENOM : "tom"
	    deploy:
	      replicas: 2

Étape 6 : Pour déployer le server NGINX il faut ajouter ceci dans le fichier docker-compose.yml

services:
	nginx :
	    image: nginx
	    restart: always
	    ports:
	      - "80:80"
	      - "443:443"
	    volumes:
	      - ./web:/usr/share/nginx/html
	      - ./nginx:/etc/nginx/conf.d

Étape 7 : Pour initialiser la base de données deux méthodes s'offrent à nous. La première en se connectant directement au serveur REDIS et la deuxième en utilisant l'interface REDISINSIGHT.

  • Première solution

    • Démarrer docker avec la commande docker compose up -d
    • Effectuer la commande docker ps afin de lister tous conteneurs
    • Maintenant qu'on sait sur quel docker on veut se connecter (celui de REDIS) on peut effectuer la commande suivante nous permettant d'ouvrir un Shell directement dans le docker. docker exec -it tp4-redis-1 /bin/bash
    • Maintenant effectuer cette commande redis-cli elle va nous permettre de définir la clef
    • Et ensuite pour définir la clef on effectue set code 12345
    • Maintenant vous pouvez voir les changements en allant sur la page "http://localhost/index.php"
  • Deuxième solution

TP 5/6

Étape 1 : Il faut utiliser de nouveau ce qu'on a fait lors du TP4 afin de faire la mise en réseau. Pour cela nous allons tout d'abord ajouter ceci :

networks:
	- back

Sur le service REDIS, REDISINSIGHT

networks:
	- front

Sur le service NGINX

networks:
	- front
	- back

Sur le service PHP Et un bloc networks à la fin du fichier :

networks:
  front:
  back:

Étape 2 : On va commencer par faire un docker compose contenant les services de cadvisor et de node exporter. Pour la partie cadvisor on va mettre

services:
  cadvisor:
    image: google/cadvisor:latest
    ports:
      - "8080:8080"
    restart: unless-stopped
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro*

Et pour la partie node exporter

services:
  node-exporter:
    image: prom/node-exporter:latest
    ports:
      - "9100:9100"
    restart: unless-stopped

Étape 3 : Maintenant on va faire un docker compose pour le service de prometheus

services:
  prometheus:
    image: prom/prometheus:latest
    restart: unless-stopped
    volumes:
      - ./prometheus/:/etc/prometheus/
    ports:
      - "9090:9090"

⚠️ Attention, il ne faut pas oublier de faire le fichier de configuration de prometheus (prometheus.yml) et ensuite de la mettre dans un dossier prometheus

global:
  scrape_interval: 1m
  evaluation_interval: 1m

scrape_configs:
  - job_name: 'prometheus'

    scrape_interval: 1m

    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'node'
    static_configs:
      - targets: ['node-exporter:9100']

  - job_name: 'cadvisor'
    static_configs:
      - targets: ['cadvisor:8080']

Ce fichier de configuration va nous permettre de faire le lien entre le service prometheus et les services cadvisor et node exporter

Étape 4 : Maintenant il ne reste plus qu'à faire le docker compose pour le service Grafana.

services:
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    restart: unless-stopped

Étape 5 :