Introduction
Docker est une plateforme de conteneurisation puissante qui a révolutionné la manière dont les développeurs et les professionnels informatiques gèrent et déploient les applications. Dans ce tutoriel, nous vous guiderons à travers le processus de création d'un conteneur Docker sur un système Linux, de l'installation et de la configuration de Docker à la création et à l'exécution de vos propres conteneurs personnalisés.
Comprendre les conteneurs Docker
Docker est une plateforme open-source populaire qui permet aux développeurs de créer, déployer et exécuter des applications dans un environnement conteneurisé. Les conteneurs sont des paquets logiciels légers, autonomes et exécutables qui incluent tout ce dont une application a besoin pour fonctionner, y compris le code, l'environnement d'exécution, les outils système et les bibliothèques.
Qu'est-ce qu'un conteneur Docker ?
Un conteneur Docker est une unité logicielle standardisée qui regroupe le code et toutes ses dépendances, afin que l'application fonctionne rapidement et de manière fiable d'un environnement informatique à un autre. Les conteneurs sont créés à partir d'images Docker, qui sont les modèles pour la création de conteneurs. Les conteneurs Docker sont isolés les uns des autres et du système d'exploitation hôte, fournissant un environnement d'exécution cohérent et prévisible.
Avantages des conteneurs Docker
- Portabilité : Les conteneurs Docker peuvent s'exécuter sur n'importe quelle machine disposant de Docker installé, quel que soit l'infrastructure ou le système d'exploitation sous-jacent.
- Cohérence : Les conteneurs Docker garantissent que l'application fonctionnera de la même manière, quel que soit l'environnement.
- Efficacité : Les conteneurs Docker sont légers et utilisent moins de ressources que les machines virtuelles, car ils partagent le noyau du système d'exploitation hôte.
- Scalabilité : Les conteneurs Docker peuvent être facilement mis à l'échelle, ce qui facilite la gestion et le déploiement des applications.
- Isolation : Les conteneurs Docker sont isolés les uns des autres et du système d'exploitation hôte, améliorant la sécurité et la stabilité.
Architecture des conteneurs Docker
graph TD
A[Hôte Docker] --> B[Moteur Docker]
B --> C[Images Docker]
B --> D[Conteneurs Docker]
D --> E[Application]
D --> F[Bibliothèques]
D --> G[Outils système]
Cycle de vie d'un conteneur Docker
- Construction : Créer une image Docker à partir d'un Dockerfile.
- Envoi : Stocker l'image Docker dans un registre, tel que Docker Hub.
- Exécution : Créer et exécuter un conteneur Docker à partir de l'image.
Cas d'utilisation des conteneurs Docker
- Microservices : Les conteneurs Docker sont bien adaptés à la création et au déploiement d'applications basées sur des microservices.
- Intégration continue et déploiement continu : Les conteneurs Docker peuvent être utilisés pour automatiser la construction, les tests et le déploiement des applications.
- Hébergement cloud : Les conteneurs Docker peuvent être facilement déployés et mis à l'échelle sur des plateformes cloud, telles qu'AWS, Azure et Google Cloud.
- Machine learning et science des données : Les conteneurs Docker peuvent être utilisés pour encapsuler et déployer des modèles d'apprentissage automatique et des pipelines de traitement de données.
Installation et configuration de Docker sur Linux
Installation de Docker sur Ubuntu 22.04
- Mettre à jour l'index des paquets :
sudo apt-get update
- Installer les paquets nécessaires pour permettre à
aptd'utiliser un dépôt via HTTPS :
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- Ajouter la clé GPG officielle de Docker :
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Configurer le dépôt Docker :
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- Installer le moteur Docker, containerd et Docker Compose :
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Configuration de Docker
- Vérifier l'installation de Docker :
sudo docker run hello-world
- Ajouter votre utilisateur au groupe Docker pour exécuter les commandes Docker sans
sudo:
sudo usermod -aG docker $USER
- Configurer Docker pour qu'il démarre automatiquement au démarrage du système :
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
- (Facultatif) Configurer Docker pour utiliser un pilote de stockage différent :
sudo vi /etc/docker/daemon.json
Ajouter la configuration suivante et enregistrer le fichier :
{
"storage-driver": "overlay2"
}
- Redémarrer le service Docker :
sudo systemctl restart docker
Installation de Docker Compose
- Télécharger la dernière version de Docker Compose :
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- Rendre le binaire exécutable :
sudo chmod +x /usr/local/bin/docker-compose
- Vérifier l'installation de Docker Compose :
docker-compose --version
Création et exécution de conteneurs Docker
Création d'images Docker
- Créez un nouveau répertoire pour votre projet :
mkdir my-docker-project
cd my-docker-project
- Créez un fichier
Dockerfiledans le répertoire du projet :
touch Dockerfile
- Ouvrez le fichier
Dockerfileet ajoutez le contenu suivant :
## Utilisez l'image officielle Ubuntu 22.04 comme base
FROM ubuntu:22.04
## Mettez à jour l'index des paquets et installez les paquets nécessaires
RUN apt-get update && apt-get install -y \
nginx \
curl \
&& rm -rf /var/lib/apt/lists/*
## Copiez le fichier de configuration Nginx par défaut
COPY default.conf /etc/nginx/conf.d/
## Exposez le port 80 pour Nginx
EXPOSE 80
## Démarrez Nginx au lancement du conteneur
CMD ["nginx", "-g", "daemon off;"]
- Créez un fichier de configuration Nginx par défaut
default.conf:
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
- Créez l'image Docker :
docker build -t my-nginx-app .
Exécution de conteneurs Docker
- Exécutez le conteneur Docker :
docker run -d --name my-nginx-app -p 80:80 my-nginx-app
- Vérifiez que le conteneur est en cours d'exécution :
docker ps
- Accédez au serveur web Nginx exécuté dans le conteneur :
curl http://localhost
Gestion des conteneurs Docker
- Arrêtez le conteneur en cours d'exécution :
docker stop my-nginx-app
- Démarrez le conteneur arrêté :
docker start my-nginx-app
- Supprimez le conteneur :
docker rm my-nginx-app
- Supprimez l'image Docker :
docker rmi my-nginx-app
Docker Compose
- Créez un fichier
docker-compose.yml:
version: '3'
services:
web:
build: .
ports:
- "80:80"
- Construisez et exécutez l'application Docker Compose :
docker-compose up -d
- Arrêtez et supprimez l'application Docker Compose :
docker-compose down
Résumé
À la fin de ce tutoriel, vous aurez une compréhension solide de Docker et de ses capacités, ainsi que les compétences pratiques pour créer, gérer et exécuter des conteneurs Docker sur un système Linux. Ces connaissances vous permettront d'optimiser le déploiement de vos applications, d'améliorer leur évolutivité et d'améliorer votre flux de travail DevOps global.



