Installation et configuration de Docker sur CentOS

Pour exécuter Docker sur CentOS, le noyau du système doit être supérieur à la version 3.10. Vérifiez la version actuelle avec :

uname -r

Éliminez les anciennes installations potentielles de Docker :

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

Installez les dépendances requises, notamment les utilitaires yum et les pilotes pour le stockage :

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Configurez le dépôt Docker. Vous pouvez utiliser le dépôt officiel ou un miroir plus proche géographiquement :

# Dépôt officiel
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Ou un miroir alternatif (exemple)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

Listez les versions disponibles de Docker CE dans les dépôts configurés :

yum list docker-ce --showduplicates | sort -r

Installez la dernière version stable de Docker CE :

sudo yum install -y docker-ce docker-ce-cli containerd.io

Pour installer une version spécifique, spécifiez-la :

sudo yum install -y docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io

Activez et démarrez le service Docker, puis vérifiez son statut :

sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker

En cas d'échec au démarrage lié aux limites système (erreur "Operation not permitted"), vérifiez et modifiez les limites de fichiers ouverts pour les services Docker et containerd. Consultez la configuration actuelle :

ulimit -n

Éditez les fichiers de service systemd pour ajuster les limites, par exemple pour docker.service et containerd.service dans /usr/lib/systemd/system/. Modifiez les directives LimitNOFILE et LimitNPROC à des valeurs adéquates, par exemple :

[Service]
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity

Rechargez la configuration systemd et redémarrez les services :

sudo systemctl daemon-reload
sudo systemctl restart docker containerd

Vérifiez l'installation :

docker version
docker info

Déplacement du répertoire de stockage des données Docker

Par défaut, Docker stocke ses images, conteneurs et volumes dans /var/lib/docker. Pour changer cet emplacement vers un autre répertoire, par exemple /data/docker_data, deux méthodes principales s'offrent à vous.

Méthode 1 : Configuraton via le fichier daemon.json

Créez ou éditez le fichier /etc/docker/daemon.json et spécifiez la nouvelle racine de données :

{
    "data-root": "/data/docker_data"
}

Méthode 2 : Modification via systemd (override)

Arrêtez le service Docker :

sudo systemctl stop docker

Créez un fichier de surcharge pour le service Docker. Cela évite de modifier le fichier service original :

sudo systemctl edit docker.service

Ajoutez le contenu suivant dans l'éditeur qui s'ouvre :

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --data-root=/data/docker_data -H fd:// --containerd=/run/containerd/containerd.sock

(La ligne ExecStart= vide annule la définition précédente).

Migration des données existantes (si nécessaire)

Si vous souhaitez conserver les données existantes, copiez-les depuis l'ancien emplacement vers le nouveau. Assurez-vous que le service Docker est bien arrêté avant de procéder.

sudo rsync -aP /var/lib/docker/ /data/docker_data/

Application des changements et redémarrage

Rechargez la configuration systemd et démarrez Docker :

sudo systemctl daemon-reload
sudo systemctl start docker

Vérifiez que Docker utilise le nouveau répertoire :

docker info | grep "Docker Root Dir"

Étiquettes: Docker CentOS systemd Configuration répertoire de données

Publié le 4 juillet à 00h53