Aller au contenu principal

Installer Docker sur CentOS

Avertissement : N'utilisez pas la commande yum pour installer Docker si vous n'avez pas configuré le dépôt YUM Docker.

Préparation

Exigences système

Docker prend en charge les versions 64 bits de CentOS 7/8 et nécessite une version de noyau 3.10 ou supérieure. CentOS 7 respecte l'exigence minimale du noyau, mais comme la version du noyau est relativement basse, certaines fonctionnalités (telles que le pilote de stockage overlay2) ne peuvent pas être utilisées et certaines fonctionnalités peuvent être moins stables.

Désinstaller les anciennes versions

L'ancienne version de Docker est appelée docker ou docker-engine. Utilisez la commande suivante pour désinstaller l'ancienne version :

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

Installer avec yum

Exécutez la commande suivante pour installer les packages de dépendances :

$ sudo yum install -y yum-utils

Exécutez la commande suivante pour ajouter le dépôt logiciel yum :

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

Si vous avez besoin d'installer la version de test de Docker, exécutez la commande suivante :

$ sudo yum-config-manager --enable docker-ce-test

Installer Docker

Mettez à jour le cache du dépôt logiciel yum et installez docker-ce.

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

Paramètres supplémentaires pour CentOS8

Puisque CentOS8 utilise nftables pour le pare-feu, mais que Docker ne prend pas encore en charge nftables, nous pouvons utiliser les paramètres suivants pour utiliser iptables :

Modifiez /etc/firewalld/firewalld.conf

# FirewallBackend=nftables
FirewallBackend=iptables

ou exécutez la commande suivante :

$ firewall-cmd --permanent --zone=trusted --add-interface=docker0

$ firewall-cmd --reload

Installer à l'aide d'un script automatique

Dans les environnements de test ou de développement, Docker fournit un ensemble de scripts d'installation pratiques pour simplifier le processus d'installation. Sur les systèmes CentOS, vous pouvez utiliser ce script pour l'installation, et vous pouvez également utiliser l'option --mirror pour utiliser une source nationale :

Si vous souhaitez installer la version de test de Docker, obtenez le script depuis test.docker.com

# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

Après avoir exécuté cette commande, le script effectuera automatiquement tous les travaux préparatoires et installera la version stable de Docker sur le système.

Démarrer Docker

$ sudo systemctl enable docker
$ sudo systemctl start docker

Créer un groupe d'utilisateurs docker

Par défaut, la commande docker utilise un socket Unix pour communiquer avec le moteur Docker. Seul l'utilisateur root et les utilisateurs du groupe docker peuvent accéder au socket Unix du moteur Docker. Pour des raisons de sécurité, l'utilisateur root n'est généralement pas utilisé directement sur les systèmes Linux. Par conséquent, une meilleure pratique consiste à ajouter l'utilisateur qui a besoin d'utiliser docker au groupe d'utilisateurs docker.

Créez le groupe docker :

$ sudo groupadd docker

Ajoutez l'utilisateur actuel au groupe docker :

$ sudo usermod -aG docker $USER

Déconnectez-vous du terminal actuel et reconnectez-vous, puis effectuez le test suivant.

Tester si Docker est correctement installé

$ docker run --rm hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

Si les informations ci-dessus s'affichent normalement, cela signifie que l'installation a réussi.

Ajouter des paramètres noyau

Si vous voyez les messages d'avertissement suivants lors de l'utilisation de Docker sur CentOS :

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Veuillez ajouter des paramètres de configuration du noyau pour activer ces fonctionnalités.

$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

Puis rechargez sysctl.conf

$ sudo sysctl -p

Documentation de référence