Skip to Content

Docker / Podman

Cet article explique comment installer et utiliser les technologies de conteneur Docker et Podman sur Ubuntu 26.04.

Installation d’Docker CE

Supprimer les anciennes versions

sudo apt remove docker docker-engine docker.io containerd runc 2>/dev/null

Installer Docker CE

# Install dependencies sudo apt update sudo apt install ca-certificates curl gnupg -y # Add Docker official GPG key sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add Docker repository echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Utilisez Docker sans sudo

# Add current user to the docker group sudo usermod -aG docker $USER # Apply group changes (or log out and back in) newgrp docker

Vérifier l’installation

docker --version docker compose version docker run hello-world

Configurer le miroir Docker (Chine)

Modifier /etc/docker/daemon.json :

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.xuanyuan.me" ] } EOF # Restart Docker sudo systemctl daemon-reload sudo systemctl restart docker

Docker Bases

Opérations sur les images

# Pull an image docker pull ubuntu:26.04 docker pull nginx:latest # List local images docker images # Remove an image docker rmi nginx:latest # Build an image docker build -t myapp:latest . # Clean up unused images docker image prune -a

Opérations de conteneurs

# Run a container docker run -d --name mynginx -p 8080:80 nginx # List running containers docker ps # List all containers docker ps -a # Enter a container docker exec -it mynginx bash # View container logs docker logs -f mynginx # Stop and remove a container docker stop mynginx docker rm mynginx # Clean up all stopped containers docker container prune

Volumes

# Create a volume docker volume create mydata # Mount a volume docker run -d -v mydata:/data --name mycontainer ubuntu # Mount a host directory docker run -d -v /home/user/data:/data --name mycontainer ubuntu # List volumes docker volume ls docker volume inspect mydata

Docker Composer

Docker Compose est utilisé pour définir et exécuter des applications multi-conteneurs.

Exemple : application Web + base de données

Créez compose.yaml :

services: web: image: nginx:latest ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html depends_on: - db db: image: postgres:18 environment: POSTGRES_DB: mydb POSTGRES_USER: admin POSTGRES_PASSWORD: secret volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432" redis: image: redis:7-alpine ports: - "6379:6379" volumes: pgdata:

Commandes de rédaction courantes

# Start all services docker compose up -d # Check service status docker compose ps # View logs docker compose logs -f web # Stop all services docker compose down # Stop and remove volumes docker compose down -v # Rebuild and start docker compose up -d --build

Ecriture d’un fichier Docker

Un exemple typique de construction en plusieurs étapes :

# Build stage FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # Runtime stage FROM node:22-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules EXPOSE 3000 CMD ["node", "dist/index.js"]

Podman : une alternative à Docker

Podman est un moteur de conteneur sans démon compatible avec la CLI Docker.

Installer Podman

sudo apt install podman -y

Vérifiez l’installation :

podman --version podman info

Podman Bases

Les commandes Podman sont presque identiques à Docker :

# Pull and run a container podman pull docker.io/library/nginx podman run -d --name mynginx -p 8080:80 nginx # List containers podman ps # Stop and remove podman stop mynginx podman rm mynginx

Différences entre Podman et Docker

  • Sans démon : Podman ne nécessite pas de processus démon en arrière-plan
  • Sans racine : Podman exécute les conteneurs en tant qu’utilisateur standard par défaut, offrant ainsi une meilleure sécurité.
  • Prise en charge des pods : Podman prend en charge nativement le concept Pod (similaire aux pods Kubernetes)
  • Compatibilité : La grande majorité des commandes Docker peuvent être directement remplacées par Podman

Configurer l’alias de compatibilité Docker

echo 'alias docker=podman' >> ~/.bashrc source ~/.bashrc

Podman Composer

# Install podman-compose (prefer apt or pipx to avoid the PEP 668 restriction) sudo apt install -y podman-compose # Or: sudo apt install -y pipx && pipx install podman-compose # Usage is the same as docker compose podman-compose up -d podman-compose down

Docker Maintenance du système

# Check disk usage docker system df # Full cleanup (use with caution) docker system prune -a --volumes # Check Docker service status sudo systemctl status docker

Docker et Podman ont chacun leurs atouts. Docker possède un écosystème plus mature, tandis que Podman offre une meilleure sécurité et ne nécessite pas de démon. Choisissez en fonction de vos besoins.

FAQ

Dois-je choisir Docker ou Podman ?

Si vous êtes débutant ou avez besoin de collaborer avec une équipe, Docker est recommandé car il dispose d’un écosystème plus mature, d’une documentation plus riche et d’un support communautaire plus large. Si vous donnez la priorité à la sécurité ou travaillez dans un environnement sans privilèges root, Podman est le meilleur choix car il ne nécessite pas de démon et s’exécute par défaut en tant qu’utilisateur non root.

Puis-je utiliser la version Snap de Docker ?

Le package docker.io dans le référentiel Ubuntu et la version Snap de Docker peuvent être utilisés, mais ils sont généralement en retard par rapport à la version officielle Docker CE et peuvent avoir des problèmes de compatibilité. Nous vous recommandons d’installer Docker CE à partir du référentiel officiel Docker comme décrit dans cet article pour obtenir la dernière version et une meilleure compatibilité.

Ai-je besoin de sudo pour utiliser Docker ?

Par défaut, les privilèges sudo sont requis pour exécuter les commandes Docker. Après avoir ajouté votre utilisateur au groupe docker, vous pouvez utiliser Docker sans sudo (exécutez sudo usermod -aG docker $USER puis déconnectez-vous et reconnectez-vous). Notez qu’être dans le groupe Docker équivaut à avoir les privilèges root, soyez donc prudent dans les environnements multi-utilisateurs.

Articles connexes