DOCKER CONTAINER ARCHITECTURE Ubuntu Host OS (Kernel) Docker Engine + containerd Container 1 App + Deps Image Layer Container 2 App + Deps Image Layer Container 3 App + Deps Image Layer Containers share the host kernel but are isolated via namespaces and cgroups

Docker est devenu le standard de l’industrie pour la conteneurisation. Que vous configuriez un environnement de developpement ou prepariez un serveur de production, installer Docker sur Ubuntu est une competence fondamentale que tout professionnel Linux devrait maitriser.

Ce guide vous accompagne tout au long du processus d’installation de Docker Engine, Docker CLI, containerd et du plugin Docker Compose sur Ubuntu 22.04 et 24.04.

Etape 1 : Desinstaller les Anciennes Versions

sudo apt-get remove docker docker-engine docker.io containerd runc docker-compose docker-doc podman-docker
sudo apt-get autoremove -y

Etape 2 : Configurer le Depot APT Docker

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

Etape 3 : Installer Docker Engine

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

Etape 4 : Verifier l’Installation

sudo systemctl status docker
sudo docker run hello-world
docker --version
docker compose version

Etape 5 : Configuration Post-Installation

Executer Docker Sans sudo

sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

Avertissement de Securite : Le groupe docker accorde des privileges equivalents a root. N’ajoutez que des utilisateurs de confiance a ce groupe.

Configurer le Logging Par Defaut

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF
sudo systemctl restart docker

Reference Rapide des Commandes

# Executer un conteneur en arriere-plan
docker run -d --name mon-conteneur <image>

# Lister les conteneurs en cours d'execution
docker ps

# Voir les logs du conteneur
docker logs <nom_ou_id_conteneur>

# Executer une commande dans un conteneur
docker exec -it <nom_ou_id_conteneur> /bin/bash

# Nettoyer les ressources inutilisees
docker system prune -a --volumes

Depannage

Permission Refusee

groups $USER
sudo usermod -aG docker $USER
# Deconnectez-vous et reconnectez-vous

Impossible de Se Connecter au Daemon Docker

sudo systemctl start docker
sudo systemctl status docker
sudo journalctl -u docker.service --no-pager -n 50

Conclusion

Vous avez installe avec succes Docker Engine, Docker CLI, containerd et Docker Compose sur Ubuntu. Docker est un outil puissant qui, combine avec Docker Compose et une orchestration appropriee, peut simplifier l’ensemble de votre flux de deploiement.