Wiki - Docker

Article wiki - Docker

Table des Matières

Docker

Docker est une plateforme de conteneurisation open-source qui permet de créer, déployer et exécuter des applications dans des conteneurs isolés. Développé par Docker Inc. et publié pour la première fois en 2013, Docker a révolutionné la manière de construire, déployer et gérer des applications en les empaquetant avec toutes leurs dépendances dans des conteneurs standardisés.

Présentation générale

Docker est une plateforme open-source qui permet d'automatiser le déploiement d'applications dans des conteneurs logiciels. Un conteneur Docker isole une application et ses dépendances dans un environnement isolé, garantissant qu'elle fonctionnera de manière cohérente sur n'importe quel système. Cette approche élimine le problème classique du "ça marche sur ma machine".

Le projet Moby, lancé en 2017, est un projet open source pour faire avancer les logiciels et l'expérience de la conteneurisation. Docker utilise une architecture client-serveur : le démon Docker (dockerd) gère les conteneurs, les images, les réseaux et les volumes, tandis que le client Docker (CLI) permet aux utilisateurs d'interagir avec le démon.

Historique et versions

Docker a été initialement développé par Solomon Hykes et l'équipe de dotCloud (maintenant Docker, Inc.) et a été publié en open-source en mars 2013. Sa version 1.0 est sortie en juin 2014. La plateforme a rapidement gagné en popularité, notamment grâce à sa facilité d'utilisation et à sa capacité à créer des environnements de développement et de production reproductibles.

Évolution et versions récentes

Docker a connu plusieurs versions majeures, notamment l'introduction de Docker Swarm pour l'orchestration, l'interface de ligne de commande (CLI), et l'intégration avec Kubernetes. En 2023, Docker a annoncé un nouveau modèle de tarification et a continué d'évoluer vers des solutions cloud et d'entreprise.

Les versions récentes de Docker Desktop (comme la v4.30.0, 2026) incluent des améliorations de performances, une meilleure intégration avec les outils de développement, et une meilleure prise en charge des architectures ARM (comme Apple Silicon). Les versions récentes de Docker Engine (v25.0, 2026) apportent des améliorations de sécurité et de performance.

Caractéristiques principales

  • Portabilité : Les conteneurs Docker sont portables sur n'importe quel système supportant Docker, garantissant une exécution cohérente entre les environnements.

  • Isolation : Chaque conteneur s'exécute de manière isolée, avec ses propres ressources et dépendances.

  • Légèreté : Les conteneurs partagent le noyau de l'OS hôte, ce qui les rend plus légers que les machines virtuelles.

  • Automatisation : Docker permet d'automatiser le déploiement d'applications via des Dockerfiles et des fichiers de composition (docker-compose).

  • Large écosystème : Docker Hub, le registre public, fournit des milliers d'images officielles et communautaires.

Prérequis système

Docker est disponible sur plusieurs plateformes :

  • Linux : Distributions basées sur le noyau Linux (3.10 ou supérieur).

  • Windows : Windows 10/11 Pro, Enterprise, ou Education (version 1607 ou supérieure) avec Hyper-V activé.

  • macOS : macOS 10.14 ou supérieur (Apple Silicon ou Intel).

Requis système minimaux : 2 Go de RAM, 2 cœurs de processeur, 4 Go d'espace disque.

Installation

Il existe plusieurs méthodes d'installation selon le système d'exploitation.

Sur Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Sur macOS et Windows

Téléchargez Docker Desktop à partir du site officiel et installez-le comme une application classique. Docker Desktop inclut le démon Docker, Docker CLI, et Docker Compose.

Pour Linux, Docker Desktop est également disponible. Téléchargez la version appropriée pour votre distribution.

Configuration de base

Après l'installation, vous pouvez configurer Docker pour améliorer la sécurité et les performances.

# Vérifier la version
docker --version

# Tester l'installation
docker run hello-world

Pour exécuter Docker sans sudo sur Linux, ajoutez votre utilisateur au groupe docker :

sudo usermod -aG docker $USER
newgrp docker

Utilisation et commandes principales

Gestion des images

# Télécharger une image depuis Docker Hub
docker pull ubuntu:latest

# Lister les images locales
docker images

Gestion des conteneurs

# Lancer un conteneur à partir d'une image
docker run -d --name mon_conteneur nginx

# Lister les conteneurs actifs
docker ps

# Accéder à un shell dans un conteneur
docker exec -it mon_conteneur bash

Gestion des volumes et réseaux

# Créer un volume
docker volume create mon_volume

# Créer un réseau personnalisé
docker network create mon_reseau

Trucs et astuces

  • Utilisez les Dockerfile pour créer des images personnalisées.

  • Utilisez docker-compose pour gérer des applications multi-conteneurs.

  • Nettoyez régulièrement les images et conteneurs inutilisés avec docker system prune -a.

  • Pour le développement, utilisez des volumes pour le montage de code source.

FAQ

Quelle est la différence entre Docker et une machine virtuelle ?

Les conteneurs Docker partagent le noyau de l'hôte, ce qui les rend plus légers et plus rapides à démarrer que les machines virtuelles, qui virtualisent le matériel.

Comment partager mes images Docker ?

Vous pouvez pousser vos images sur Docker Hub ou un registre privé.

Docker est-il gratuit ?

Docker propose des versions gratuites pour un usage personnel et des forfaits payants pour les entreprises.

Ressources et liens utiles