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