Aller au contenu principal

Docker Engine et Compose

Docker Engine (dockerd) gère les images, les conteneurs, les réseaux et les volumes. Le CLI docker communique avec lui ; containerd est le runtime sous-jacent ; Buildx construit les images ; le plugin Compose définit les applications en YAML. L'installation de ces composants ne déploie pas d'application.

Le client envoie ses commandes au daemon, qui gère images et conteneurs locaux et échange des images avec un registre.Voir l’image en grand

Suivez les commandes du client vers le daemon : build construit une image, pull la récupère depuis un registre et run crée puis démarre un conteneur, après téléchargement de l’image si nécessaire. Image et conteneur sont des objets distincts. Compose gère plusieurs services via ce même Engine ; il ne figure pas dans le schéma.

Inspectez d’abord le VPS. Si une installation Docker prise en charge fonctionne déjà, ne la réinstallez pas et ne mélangez pas les sources de paquets.

[REMOTE: VPS]
command -v docker || true
docker --version || true
docker compose version || true
dpkg -l | grep -E 'docker|containerd' || true

Pour une nouvelle installation, suivez les instructions officielles du dépôt Docker pour Ubuntu, sans les mélanger aux paquets Ubuntu docker.io :

[REMOTE: VPS]
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

Relevez le nom de code Ubuntu et l’architecture de ce VPS :

[REMOTE: VPS]
. /etc/os-release
printf '%s\n' "${UBUNTU_CODENAME:-$VERSION_CODENAME}"
dpkg --print-architecture

Créez le fichier ci-dessous en remplaçant les deux valeurs provisoires par les valeurs relevées. S’il existe déjà, examinez-le avant toute modification plutôt que de l’écraser aveuglément.

/etc/apt/sources.list.d/docker.sources
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: <UBUNTU_CODENAME>
Components: stable
Architectures: <DPKG_ARCHITECTURE>
Signed-By: /etc/apt/keyrings/docker.asc

Actualisez l’index et examinez les versions candidates. Si le dépôt officiel n’en propose aucune pour la version détectée, arrêtez-vous ; ne substituez pas le nom de code d’une autre version Ubuntu.

[REMOTE: VPS]
sudo apt update
apt-cache policy docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
sudo apt-get -s install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin

Examinez les suppressions ou conflits annoncés par la simulation avant de lancer l’installation :

[REMOTE: VPS]
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
systemctl is-enabled docker
systemctl is-active docker

Ajoutez uniquement un administrateur de confiance au groupe Docker :

[REMOTE: VPS]
sudo usermod -aG docker "$VPS_USER"

Déconnectez-vous puis reconnectez-vous via Tailscale pour que la nouvelle session reçoive cette appartenance au groupe. Vérifiez-la ensuite et lancez le conteneur de test :

[REMOTE: VPS]
id
docker info
docker run --rm hello-world

N'utilisez jamais chmod 666 /var/run/docker.sock. L'appartenance au groupe Docker confère déjà des privilèges de niveau root. --rm supprime le conteneur de test, pas son image en cache.

Les images sont des modèles, les conteneurs sont des instances, et les volumes ou les chemins d'hôte délibérés conservent les données persistantes. Ne modifiez pas /var/lib/docker manuellement. Examinez chaque port publié à l'avenir, car le réseau Docker peut contourner UFW.

Explorer les liensOuvrir le réseau