Docker

Docker est une plateforme permettant de lancer certaines applications dans des conteneurs logiciels lancée en 2013.

Présentation

image.png

Qu’est-ce que Docker ?

Docker est un outil qui permet de faire tourner des applications dans des conteneurs. Un conteneur est un environnement léger, isolé, qui embarque tout ce qu’il faut pour faire fonctionner un programme : ses fichiers, ses dépendances, sa configuration, etc.

L’idée de Docker, c’est de standardiser et simplifier le déploiement d’applications. Peu importe le système d’exploitation de la machine (Debian, Ubuntu, Arch, etc.), tant que Docker est installé, on peut exécuter n’importe quel conteneur, toujours de la même manière.

C’est une sorte de boîte hermétique pour les applications, qui évite les conflits et facilite les mises à jour.

Comment ça fonctionne ?

Un conteneur Docker est basé sur une image. Cette image est comme une recette qui dit : "Voici les fichiers à utiliser, voici comment démarrer l’application, et voici les ports à exposer." Une fois l’image téléchargée ou créée, Docker exécute un conteneur à partir de cette image.

Chaque conteneur est isolé, mais utilise le noyau du système hôte, ce qui le rend plus léger et plus rapide qu’une machine virtuelle. Docker ne virtualise pas tout un système d’exploitation, seulement ce qui est nécessaire pour faire tourner le service demandé.

Les conteneurs peuvent aussi partager des fichiers, des ports ou des volumes avec le système hôte, ce qui les rend très flexibles et faciles à intégrer dans un environnement existant.

image.png

Pourquoi utiliser Docker ?

Docker est très utilisé dans le monde professionnel et chez les particuliers, car il :

Cas d’usage concrets

En auto-hébergement, Docker est parfait pour faire tourner des services comme :

Chaque service peut tourner dans son propre conteneur, avec sa configuration indépendante, sans interférer avec les autres.

En résumé

Docker est une solution simple, rapide et efficace pour déployer des applications. Grâce aux conteneurs, il permet de standardiser l’environnement, isoler les services, et automatiser les déploiements, sans pour autant complexifier la gestion du serveur.

C’est un outil devenu incontournable pour les administrateurs, les développeurs, et tous ceux qui veulent héberger leurs services en toute autonomie, avec une grande souplesse.

Installation

image.png

Prérequis :

Installation :

Ajout des repo Docker :
# AJout des clés GPG:
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

# Ajout des repo aux sources apt:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
Installation des paquets Docker :
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Vérifier l'installation :
docker run hello-world

Docker est installé !

Commandes utiles

image.png

Gestion des Containers

2. Gestion des Images

3. Gestion des Volumes

4. Réseaux Docker

5. Gestion des Docker Compose

6. Autres Commandes Utiles

Portainer

image.png

Présentation :

Portainer est une interface utilisateur Web open source pour Docker qui facilite la gestion des conteneurs, images, volumes et réseaux.
Il fournit une interface graphique intuitive qui simplifie le déploiement, la gestion et la surveillance des conteneurs et des services Docker.

Déploiement :

Création du volume de portainer server, qui contiendra la BDD :
docker volume create portainer_data
Création du container portainer server :
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts

Interface Web :

Se connecter via https://<IP>:9443 :

image.png

Une fois le compte admin et son mot de passe défini, on peut valider. On est alors redirigé vers cette page :

image.png