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/nullInstaller 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 -yUtilisez 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 dockerVérifier l’installation
docker --version
docker compose version
docker run hello-worldConfigurer 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 dockerDocker 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 -aOpé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 pruneVolumes
# 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 mydataDocker 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 --buildEcriture 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 -yVérifiez l’installation :
podman --version
podman infoPodman 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 mynginxDiffé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 ~/.bashrcPodman 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 downDocker 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 dockerDocker 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
- Docker Compose Service Orchestration - Déployer des applications multi-conteneurs avec Docker Compose dans un environnement de serveur
- Machines virtuelles et conteneurs - Comparez les technologies de VM et de conteneurs pour comprendre leurs cas d’utilisation respectifs