0% ont trouvé ce document utile (0 vote)
3 vues6 pages

TP6 Devops

Ce document présente un TP sur la création d'un Runner Docker utilisant GitLab et Docker, en mettant l'accent sur l'architecture de Docker, les images et conteneurs, ainsi que les registries. Il explique également la persistance des données, l'utilisation de Docker Compose pour les applications multi-conteneurs, et fournit des instructions détaillées pour l'installation et la configuration d'un Runner Docker. Enfin, il aborde la création de pipelines pour le Runner Docker, en soulignant les différences par rapport aux étapes précédentes.

Transféré par

erraguibiabdelilah1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues6 pages

TP6 Devops

Ce document présente un TP sur la création d'un Runner Docker utilisant GitLab et Docker, en mettant l'accent sur l'architecture de Docker, les images et conteneurs, ainsi que les registries. Il explique également la persistance des données, l'utilisation de Docker Compose pour les applications multi-conteneurs, et fournit des instructions détaillées pour l'installation et la configuration d'un Runner Docker. Enfin, il aborde la création de pipelines pour le Runner Docker, en soulignant les différences par rapport aux étapes précédentes.

Transféré par

erraguibiabdelilah1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Pr.

BENHADDI Meriem
Année universitaire :
Cours : DevOps et Cloud Computing 2025/2026

TP6 : GitLab et Docker : Création d’un Runner de type Docker

Dans ce TP, notre runner va tourner, non pas sur notre machine comme dans le TP précèdent,
mais sur une instance Docker, donc une VM extérieur à ma machine locale. Ceci permettra
d’isoler les ressources.

Documentation : [Link]

Qu'est-ce que Docker ?


Docker est une plateforme open-source de conteneurisation qui permet de créer, déployer et
exécuter des applications dans des environnements isolés et standardisés appelés conteneurs.
Avant Docker, le syndrome commun était : "Ça marche sur ma machine mais pas en
production". Docker résout ce problème en empaquetant l'application avec toutes ses
dépendances dans un environnement cohérent et portable.

L'Architecture Docker
Le Moteur Docker
Cœur du système, composé de trois éléments principaux :

- Le Démon Docker
 Service en arrière-plan qui gère tous les conteneurs
 Écoute les commandes via l'API Docker
 Gère le cycle de vie des conteneurs

- Le Client Docker
 Interface en ligne de commande pour interagir avec le Démon
 Envoie des instructions au Démon via l'API

- L'API REST
 Interface de programmation permettant la communication
 Permet à des outils externes de contrôler Docker

Les Images Docker


Une image Docker est un modèle en lecture seule qui contient les instructions pour créer un
conteneur. C'est une sorte de "recette" ou de "patron" qui définit l'environnement d'exécution.

Caractéristiques Clés
 Immuable : Une fois créée, une image ne change pas
 Empilable : Composée de couches superposées
 Versionnable : Peut être taguée avec différentes versions
 Portable : Fonctionne de manière identique sur tout système supportant Docker

Sources des Images


 Images de base : Systèmes d'exploitation minimalistes
 Images officielles : Maintenues par les éditeurs de logiciels
 Images personnalisées : Créées par les développeurs pour leurs besoins spécifiques

Les Conteneurs Docker


Un conteneur est une instance d'exécution d'une image Docker. C'est un processus isolé qui
s'exécute sur le système hôte, partageant le noyau mais ayant son propre système de fichiers
et son espace utilisateur.

Caractéristiques Principales
 Isolation : Environnement séparé des autres conteneurs et de l'hôte
 Éphémère : Peut être créé, démarré, arrêté et détruit rapidement
 Portable : Fonctionne de manière identique partout
 Léger : Partage le noyau du système hôte

Cycle de Vie
Création → Démarrage → Exécution → Arrêt → Destruction

Chapitre 5 : Les Registries Docker


Rôle et Importance
Les registries sont des dépôts qui stockent et distribuent les images Docker. Ils permettent le
partage et la réutilisation des images.

Types de Registries
 Docker Hub : Registry public officiel avec des images officielles et communautaires
 Registries privés : Solutions d'entreprise pour stocker des images propriétaires
 Registries cloud : Services hébergés par les fournisseurs cloud

Fonctionnement
Les développeurs poussent leurs images vers le registry, et les systèmes de production les
tirent pour déployer les applications.

La Persistance des Données


Par défaut, les conteneurs sont éphémères - toutes les données sont perdues quand le
conteneur est supprimé.

Solutions de Stockage :

Volumes Docker
 Gérés par Docker
 Persistants et indépendants du cycle de vie des conteneurs
 Meilleures performances

Mounts de liaison
 Lien direct avec un répertoire spécifique de l'hôte
 Utiles pour le développement

Stockage tmpfs
 Stockage en mémoire vive
 Idéal pour les données temporaires et sensibles

Chapitre 8 : Docker Compose


Rôle et Utilité
Outil pour définir et exécuter des applications multi-conteneurs. Permet de décrire l'ensemble
des services, réseaux et volumes dans un fichier de configuration.

Avantages
 Orchestration simplifiée : Groupe plusieurs conteneurs liés
 Configuration déclarative : Tout est défini dans un fichier
 Reproductibilité : Même environnement sur toutes les machines
 Gestion simplifiée : Commandes unifiées pour toute l'application

Cas d'Usage Typiques


Applications composées de plusieurs services comme une base de données, un backend API
et un frontend web.

Application

1- Installation de Docker

1.1. Télécharger et installer Docker Desktop Installer.

1.2. Vérifier l'installation


Sur l’invite de commande, taper la commande : docker ps
Résultat de la commande :

sur powershell :

docker --version
docker-compose –version

1.3. Test de fonctionnement

Une fois que Docker Desktop est démarré, testez avec :

powershell
# Télécharger une image test
docker pull hello-world

# Lancer un conteneur test


docker run hello-world

# Maintenant vérifier les conteneurs


docker ps -a

Vous devriez voir : (l’id et le port name peuvent changer)


CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 hello-world "/hello" 2 minutes ago Exited (0) 2 minutes ago happy_mountain

Sur l’interface Docker, vous pouvez également vérifier qu’un nouveau container hello-world
a été ajouté.

--------------------
Tutoriel : [Link]

Sur windows créer un dossier web dans le disque C et remplacer la commande :


docker run –v ./web:/var/www/html –p 8080 :80 php :8.4.20-apache-trixie
Par la commande :
docker run –v /c/web:/var/www/html –p 8080 :80 php :8.4.20-apache-trixie

8.4.20-apache-trixie est la version apache php que j’utilise. Si vous utilisez une autre version,
adaptez la commande.

Application avec GitLab


1- Création d’un Runner Docker

Téléchargeons l'image officielle du GitLab Runner : docker pull gitlab/gitlab-runner:latest

a. Pull de l'image

powershell

docker pull gitlab/gitlab-runner:latest

b. Vérification du téléchargement

powershell

docker images | findstr "gitlab"

Vous devriez voir :


text

REPOSITORY TAG IMAGE ID CREATED SIZE


gitlab/gitlab-runner latest abc123def456 2 weeks ago 500MB

c. Test du runner en mode conteneur

powershell

docker run --rm -it gitlab/gitlab-runner:latest --version

d. Installation en conteneur

powershell

docker run -d --name gitlab-runner --restart always -v //var/run/[Link]:/var/run/docker.s


ock -v C:/GitLab-Runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest

e. Enregistrement (dans le conteneur)

powershell (changer la valeur du token par la votre)

docker exec -it gitlab-runner gitlab-runner register `


--url [Link] `
--registration-token GR1348941uoZDinxkX8v_HSzs2-14 `
--description "docker-runner" `
--tag-list "docker,windows" `
--executor docker `
--docker-image alpine:latest

Verifier sur la plate-forme [Link] que vous avez bien un nouveau runner docker.

Aller sur votre dossier : 'C:\GitLab-Runner', ouvrer le fichier de configuration [Link]

concurrent = 4
check_interval = 0

[session_server]
session_timeout = 1800

[[runners]]
name = "docker-runner"
url = "[Link]
token = "VOTRE_TOKEN"
executor = "docker"
[runners.custom_build_dir]
[[Link]]
[[Link].s3]
[[Link]]
[[Link]]
[[Link]]
tls_verify = false
image = "default"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["c:\\cache"]
shm_size = 0

2- Création de pipelines pour le Runner Docker

Cette étape est similaire à celle du TP précédent.


Reportez-vous à la même section du TP 5.
Seule différence : pour les stages remplacez les tags par docker

Vous aimerez peut-être aussi