Docker est un outil qui vous permet de créer, déployer et gérer des packages légers et autonomes appelés conteneurs . Ces conteneurs contiennent le code, les bibliothèques, l'environnement d'exécution, les paramètres système et les dépendances nécessaires pour exécuter une application.
Ce guide couvre l'installation de Docker Engine sur diverses distributions Linux à l'aide de YUM ou DNF gestionnaire de packages, y compris CentOS et Fedora, ainsi que l'obtention et l'exécution d'images Docker.
Avant de commencer
-
Assurez-vous que vous disposez d'un accès en ligne de commande à un serveur Linux exécutant une distribution Linux prise en charge. Si ce n'est pas le cas, suivez les guides Mise en route et Configuration et sécurisation d'une instance de calcul pour créer un nouveau Linode.
Remarque Ce guide est écrit pour un utilisateur non root. Les commandes qui nécessitent des privilèges élevés sont préfixées par
sudo
. Si vous n'êtes pas familier avec lesudo
commande, consultez le guide Utilisateurs et groupes. -
Consultez les guides Docker suivants pour mieux comprendre Docker, ses avantages et quand l'utiliser.
- Une introduction à Docker
- Quand et pourquoi utiliser Docker
Installation du moteur Docker
Docker Engine est le logiciel de conteneurisation sous-jacent utilisé lors du déploiement de conteneurs Docker. Les instructions suivantes installeront Docker sur CentOS et Fedora en utilisant le YUM gestionnaire de paquets.
Distributions prises en charge : CentOS 7, CentOS 8 (y compris d'autres dérivés de RHEL 8 tels qu'AlmaLinux et RockyLinux) et Fedora 32 (et versions ultérieures)
Remarque Alors que le MIAM le gestionnaire de paquets a été remplacé par DNF sur CentOS 8 et Fedora, le yum
La commande est toujours présente en tant que lien symbolique vers DNF. En tant que telles, ces instructions fonctionnent toujours comme prévu.
-
Assurez-vous que Docker n'est pas actuellement installé. La sortie indiquant que l'un des packages est introuvable peut être ignorée en toute sécurité.
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
Installez les yum-utils package, qui inclut
yum-config-manager
. Cela installera automatiquementdnf-plugins-core
lors de l'utilisation de DNF.sudo yum install yum-utils
-
Ajoutez le référentiel Docker à l'aide de
yum-config-manager
. Cela correspond automatiquement audnf config-manager
commande lors de l'utilisation de DNF. Dans la commande suivante, remplacez[url]
avec l'url du dépôt de votre distribution :sudo yum-config-manager --add-repo [url]
- RHEL/CentOS et dérivés :
https://download.docker.com/linux/centos/docker-ce.repo
- Fedora 32 et versions ultérieures :
https://download.docker.com/linux/fedora/docker-ce.repo
- RHEL/CentOS et dérivés :
-
Installez Docker Engine et les autres packages requis :
sudo yum install docker-ce docker-ce-cli containerd.io
Au cours de cette étape, vous pouvez être invité à accepter la clé GPG. L'empreinte digitale doit être
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
. Vérifiez ces informations et saisissez y accepter.
Des instructions d'installation supplémentaires pour ces distributions sont disponibles dans la documentation de Docker :
- Installer Docker Engine sur CentOS
- Installer Docker Engine sur Fedora
Démarrer et tester Docker
Une fois Docker Engine installé, démarrez Docker et vérifiez que tout fonctionne en exécutant une image de test.
-
Assurez-vous que le serveur Docker est en cours d'exécution.
sudo systemctl start docker
-
Configurez éventuellement Docker pour qu'il démarre au démarrage du serveur. Ceci est recommandé si vous avez l'intention d'exécuter une application de production dans cette installation Docker.
sudo systemctl enable docker sudo systemctl enable containerd
-
Vérifiez que Docker est correctement installé en exécutant l'image "hello-world".
sudo docker run hello-world
En cas de succès, Docker doit télécharger et exécuter l'image hello-world et afficher un message de réussite. Entre autres textes, la sortie doit inclure un message semblable au suivant :
Hello from Docker! This message shows that your installation appears to be working correctly.
Gérer Docker avec un utilisateur non root
Par défaut, sudo
est nécessaire pour exécuter les commandes Docker, mais un nouveau groupe, appelé docker , a été créé lors de l'installation. Lorsque le démon Docker démarre, il ouvre un socket Unix pour le docker membres du groupe.
Avant de continuer, assurez-vous d'avoir un compte d'utilisateur limité qui n'en a pas appartiennent au groupe sudo. Si vous n'avez pas encore créé de compte utilisateur limité, consultez les guidesConfiguration et sécurisation d'une instance de calcul ou Utilisateurs et groupes Linux pour obtenir des instructions.
-
Entrez la commande ci-dessous pour ajouter un utilisateur au docker groupe, remplaçant [utilisateur] avec le nom de votre compte d'utilisateur limité.
sudo usermod -aG docker [user]
-
Connectez-vous au système en tant qu'utilisateur limité.
-
Vérifiez que l'utilisateur limité peut exécuter
docker
commandes sanssudo
en exécutant à nouveau l'image "hello-world".docker run hello-world
La sortie doit avoir un message de réussite similaire à la sortie précédente.
Attention Le docker groupe accorde des privilèges similaires à ceux de l'utilisateur root. Consultez le guide Docker Daemon Attack Surface dans la documentation de Docker pour plus d'informations sur la façon dont cela peut affecter la sécurité du système. Pour exécuter le démon Docker sans utiliser les privilèges root, suivez les instructions de Exécuter le démon Docker en tant qu'utilisateur non root (mode sans racine).
Résoudre les erreurs de chargement des fichiers de configuration
Si l'utilisateur avait exécuté sudo docker
commandes avant de rejoindre le groupe, elles peuvent se voir présenter un échec lors du chargement du fichier de configuration, comme ceci :
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
Le problème est que le répertoire .docker dans leur répertoire personnel (~/.docker) a été créé avec les autorisations accordées par sudo
.
Il existe deux correctifs possibles :
-
Supprimer le
.docker
répertoire à partir de leur répertoire personnel. Docker le recréera automatiquement, mais tous les paramètres personnalisés seront perdus. -
Modifier les autorisations sur le
.docker
répertoire à l'aide des commandes :sudo chown example_user:example_user /home/example_user/.docker -R sudo chmod g+rwx "/home/example_user/.docker" -R
Utiliser des images Docker pour déployer des conteneurs
Les images Docker sont des modèles qui incluent les instructions et les spécifications pour créer un conteneur. Pour utiliser Docker, vous devez d'abord obtenir une image ou créer la vôtre en créant un dockerfile. Pour plus d'informations, consultez Une introduction à Docker.
Liste des images
Pour répertorier toutes les images de votre système, exécutez la commande suivante. Cela devrait afficher le hello-world image qui a été utilisée lors d'une étape précédente, ainsi que toute image supplémentaire que vous avez peut-être déjà obtenue.
docker images
Rechercher une image
Les images sont stockées sur des registres Docker, tels que Docker Hub (registre officiel de Docker). Vous pouvez rechercher des images sur ce site Web ou utiliser la commande suivante pour effectuer une recherche dans le registre Docker. Dans la commande suivante, remplacez [keyword]
avec les mots clés que vous souhaitez rechercher, tels que nginx ou apache .
docker search [keyword]
Obtenir une image
Une fois que vous avez trouvé une image, téléchargez-la sur votre serveur. Dans la commande suivante, remplacez [image]
avec le nom de l'image que vous souhaitez utiliser.
docker pull [image]
Par exemple, pour dérouler l'image officielle de nginx, exécutez :docker pull nginx
.
Exécuter une image
Ensuite, créez un conteneur basé sur l'image en utilisant le docker run
commande. Encore une fois, remplacez [image]
avec le nom de l'image que vous souhaitez utiliser.
docker run [image]
Si l'image n'a pas encore été téléchargée et est disponible dans le registre de Docker, l'image sera automatiquement téléchargée sur votre serveur.
Gestion des conteneurs Docker
Liste des conteneurs
Pour répertorier tous les conteneurs Docker actifs (et inactifs) exécutés sur votre système, exécutez la commande suivante :
docker ps -a
La sortie doit ressembler à ce qui suit. Cet exemple de sortie montre le hello-world
conteneur.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5039168328a5 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago magical_varahamihira
Démarrer un conteneur
Démarrez un conteneur Docker avec la commande suivante, en remplaçant [ID]
avec l'ID de conteneur correspondant au conteneur que vous souhaitez démarrer :
docker start [ID]
Arrêter un conteneur
Arrêtez un conteneur Docker avec la commande suivante, en remplaçant [ID]
avec l'identifiant du conteneur correspondant au conteneur que vous souhaitez arrêter :
docker stop [ID]
Certaines images (comme le hello-world
image) s'arrêtent automatiquement après leur exécution. Cependant, de nombreux autres conteneurs continuent de s'exécuter jusqu'à ce qu'on leur demande explicitement de s'arrêter, et vous souhaiterez peut-être exécuter ces conteneurs en arrière-plan. Dans ces cas, cette commande peut être utile.
Supprimer un conteneur
Supprimez un conteneur Docker avec la commande suivante, en remplaçant [ID]
avec l'ID de conteneur correspondant au conteneur que vous souhaitez supprimer :
docker rm [ID]
Plus d'informations
Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.
- Site Web pour Docker
- Documentation pour Docker
- Site Web pour containerd