Introduction
Docker est une plateforme qui facilite l'exécution et la gestion des processus d'application dans des conteneurs. Elle permet de séparer vos applications de votre infrastructure. Les conteneurs sont très similaires aux machines virtuelles, mais ils sont plus portables, efficaces et faciles à utiliser. Il existe différentes manières d'installer Docker sur des distributions Linux . La méthode la plus populaire et la plus simple pour installer Docker sur le système d'exploitation existant consiste à utiliser les commandes yum.
Ce tutoriel va vous montrer comment configurer et utiliser Docker sur CentOS 7 en quelques étapes simples.
Prérequis :
- 64-bit instance CentOS 7.
- Un utilisateur non-root avec des privilèges sudo.
Toutes les commandes que vous exécutez tout au long de ce tutoriel sont lancées en tant qu'utilisateur non-root et, si nécessaire, l'accès root sera fourni à l'aide du mot-clé sudo.
Étape 1 : Configuration de Docker sur une instance CentOS 7
Le dépôt officiel de CentOS 7 peut ne pas disposer du dernier package d'installation pour Docker. Dans cette section, vous installerez la dernière version de Docker à partir du dépôt officiel de Docker. Tout d'abord, vous devez mettre à jour la base de données des packages à l'aide de :
|
1 |
sudo yum check-update |
Une fois l'étape de mise à jour terminée, exécutez la commande ci-dessous pour télécharger et installer la dernière version de Docker :
|
1 |
curl -fsSL https://get.docker.com/ | sh |
Docker est maintenant installé, vous pouvez donc démarrer le démon Docker en exécutant la commande ci-dessous :
|
1 |
sudo systemctl start docker |
Pour vérifier si le démon Docker est en cours d'exécution, saisissez ce qui suit :
|
1 |
sudo systemctl status docker |
La sortie de la commande systemctl status devrait être similaire à la sortie partagée ci-dessous, qui montre qu'il est en cours d'exécution :
|
1 2 3 4 5 6 |
Sortie: ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2021-02-17 18:22:06 UTC; 10s ago Docs: https://docs.docker.com Main PID: 21884 (dockerd) |
Enfin, pour vous assurer que Docker démarre au redémarrage de votre machine, utilisez la commande :
|
1 |
sudo systemctl enable docker |
L'installation de Docker vous fournit le service Docker ainsi que l'utilitaire client (client en ligne de commande Docker). Dans les sections suivantes du tutoriel, vous pourrez vous familiariser davantage avec l'utilisation des commandes Docker.
Vous pouvez également jeter un œil à notre tutoriel approfondi sur la façon d'installer & d'utiliser Docker sur Ubuntu dans le cloud public.
Étape 2 : Utilisation des commandes Docker sans le préfixe Sudo
Les commandes Docker ont besoin des privilèges root pour s'exécuter. Ainsi, si vous souhaitez exécuter les commandes, vous devrez les préfixer avec sudo. Lors de l'installation, un groupe Docker est créé par défaut. Si vous ajoutez un utilisateur à ce groupe, vous pouvez exécuter les commandes Docker sans sudo. Tenter d'exécuter des commandes Docker sans sudo ou sans ajouter l'utilisateur au groupe entraînera une sortie similaire à celle ci-dessous :
|
1 2 3 |
Sortie: docker: Impossible de se connecter au the Docker daemon. Le démon docker est-il en cours d'exécution sur cet hôte?. Voir 'docker run --help'. |
L'ajout de votre nom d'utilisateur au groupe Docker vous évitera d'avoir à utiliser sudo pour exécuter les commandes Docker :
|
1 |
sudo usermod -aG docker $(whoami) |
Pour ajouter un autre utilisateur au groupe Docker, vous pouvez simplement remplacer le nom d'utilisateur dans la commande :
|
1 |
sudo usermod -aG docker username |
Pour le reste de ce guide, nous supposerons que toutes les commandes sont exécutées par un utilisateur du groupe d'utilisateurs Docker. Si ce n'est pas le cas, vous pouvez utiliser le préfixe sudo avec les commandes.
Étape 3 : Exécution des commandes Docker
Maintenant que Docker est installé et opérationnel, examinons quelques commandes pour vous familiariser avec l'utilitaire de ligne de commande Docker. Les commandes Docker prennent généralement la forme suivante :
|
1 |
docker [option] [commande] [arguments] |
Pour trouver toutes les sous-commandes disponibles, vous devez utiliser :
|
1 |
docker |
Depuis Docker 20.10.3, la liste complète des sous-commandes disponibles comprend :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Sortie: attach Attacher les flux standard d'entrée,, de sortie, et d'erreur locaux à un conteneur en cours d'exécution build Construire une image à partir d' un Dockerfile commit Créer une nouvelle image à partir des modifications d'un conteneur's changes cp Copier des fichiers/dossiers entre un conteneur et le système de fichiers local create Créer un nouveau conteneur diff Inspecter les modifications de fichiers ou répertoires sur le système de fichiers d'un conteneur events Obtenir les événements en temps réel depuis le serveur exec Exécuter une commande dans un conteneur en cours d'exécution export Exporter le système de fichiers'd'un conteneur sous forme d' une archive tar history Afficher l'historique d'une image images Lister les images import Importer le contenu depuis un tarball pour créer une image de système de fichiers info Afficher les informations -système globales inspect Retourner des informations de -bas niveau sur les objets Docker kill Tuer un ou plusieurs conteneurs en cours d'exécution load Charger une image à partir d' une archive tar ou STDIN login Se connecter à un registre Docker logout Se déconnecter d' un registre Docker logs Récupérer les journaux d' un conteneur pause Suspendre tous les processus au sein d'un ou plusieursconteneurs port Lister les mappages de ports ou un mappage spécifique pour le conteneur ps Lister les conteneurs pull Télécharger une image ou un dépôt depuis un registre push Envoyer une image ou un dépôt vers un registre rename Renommer un conteneur restart Redémarrer un ou plusieurs conteneurs rm Supprimer un ou plusieurs conteneurs rmi Supprimer une ou plusieurs images run Exécuter une commande dans un nouveau conteneur save Sauvegarder une ou plusieurs images vers une archive tar (transmise vers STDOUT par défaut) search Rechercher sur le Docker Hub des images start Démarrer un ou plusieurs conteneurs arrêtés stats Afficher un flux en direct des statistiques (d'utilisation ) des ressources des conteneurs stop Arrêter un ou plusieurs conteneurs en cours d'exécution tag Créer un tag IMAGE_CIBLE qui fait référence à IMAGE_SOURCE top Afficher les processus actifs d'un a conteneur unpause Reprendre tous les processus dans un ou plusieurs conteneurs update Mettre à jour la configuration d'un ou plusieurs conteneurs version Afficher les informations de version de Docker wait Bloquer jusqu'à ce qu'un ou plusieurs conteneurs s'arrêtent, , puis afficher leurs codes de sortie |
Vous pouvez utiliser l'option –help avec une commande spécifique pour obtenir plus d'informations à son sujet :
|
1 |
docker subcommand --help |
Pour obtenir des informations détaillées sur le système, utilisez :
|
1 |
docker info |
Étape 4 : Travailler avec les images Docker
Les images Docker peuvent être considérées comme le modèle des conteneurs Docker. Ces images sont généralement téléchargées depuis le Docker Hub, qui est un registre géré par le projet Docker. Tout le monde peut créer et publier ses images sur le Docker Hub. Par conséquent, vous pouvez facilement trouver une grande variété d'applications et de distributions de systèmes d'exploitation dans le registre. Essayons un programme simple qui confirmera l'accès au Docker Hub :
|
1 |
docker run hello-world |
Vous devriez obtenir une sortie comme ci-dessous, ce qui montre que Docker fonctionne :
|
1 2 3 4 |
Sortie: Bonjour de la part de Docker! Ce message indique que votre installation semble fonctionner correctementworking correctly. ... |
Vous pouvez trouver diverses images Docker sur le Docker Hub en utilisant la commande de recherche. Par exemple, voyez la commande ci-dessous pour rechercher une image CentOS :
|
1 |
docker search centos |
La requête de recherche affichera une liste de toutes les images qui correspondent à la sous-chaîne. Dans votre cas, la sortie devrait ressembler à :
|
1 2 3 4 5 6 7 8 |
Sortie: NOM DESCRIPTION ÉTOILES OFFICIEL AUTOMATISÉ centos La version officielle de CentOS. 6410 [OK] ansible/centos7-ansible Ansible sur Centos7 132 [OK] consol/centos-xfce-vnc Centos conteneur avec "headless" VNC sess… 125 [OK] jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Dépôts… 117 [OK] centos/systemd systemd activé de base conteneur. 96 [OK] ... |
Dans les résultats de recherche, différentes colonnes décrivent les informations sur l'image. Le OK dans la colonne OFFICIAL indique que l'image a été créée et est supportée par l'entreprise derrière l'application. Une fois que vous avez choisi votre image, vous pouvez la télécharger sur votre machine locale à l'aide de la commande Docker pull :
|
1 |
docker pull centos |
Après avoir téléchargé l'image, vous pouvez exécuter le conteneur à l'aide de la commande Docker run. Si vous essayez d'exécuter directement une image sans téléchargement préalable, Docker téléchargera l'image puis exécutera le conteneur ensuite :
|
1 |
docker run centos |
Vous pouvez lister les images téléchargées sur votre machine locale à l'aide de la commande ci-dessous :
|
1 |
docker images |
Vous devriez obtenir une sortie similaire :
|
1 2 3 4 |
Sortie: REPOSITORY TAG IMAGE ID CREATED TAILLE centos latest 300e315adb2f 2 mois auparavant 209 Mo hello-world latest bf756fb1ae65 13 mois auparavant 13.3 ko |
Plus tard dans ce tutoriel, vous pourrez modifier les images pour exécuter les conteneurs. Ces nouvelles images peuvent être ajoutées ou poussées (push) sur le Docker Hub et d'autres registres qui hébergent les images Docker.
Étape 5 : Exécuter un conteneur de manière interactive
Il existe différents types de conteneurs. Le conteneur hello-world que vous avez exécuté dans Step4 est un type de conteneur qui s'exécute et s'arrête après avoir affiché un message. Un autre type de conteneur est le conteneur interactif. Vous pouvez utiliser des conteneurs interactifs de la même manière qu'une machine virtuelle.
Créons un conteneur à partir de la dernière image CentOS. L'utilisation des options -i et -t dans la commande Docker run donnera un accès interactif au conteneur CentOS :
|
1 |
docker run -it centos |
L'invite de commande va changer et devrait ressembler à la sortie ci-dessous :
|
1 2 |
Sortie: [root@3ce69d2a35b9 /]# |
|
1 |
Remarque: L'identifiant du conteneur affiché dans l'invite de commande est unique et il sera très utile handy par la suite , dans l'exemple il est 3ce69d2a35b9. |
Maintenant, toute commande que vous exécutez s'exécutera à l'intérieur du conteneur. C'est similaire à l'exécution d'une commande dans une machine virtuelle. Essayons d'installer le serveur MySQL dans le conteneur CentOS. Vous pouvez le faire en utilisant :
|
1 |
yum install mysql |
Étape 6 : Enregistrer les modifications d'un conteneur dans une image Docker
Après avoir démarré le conteneur, vous pouvez effectuer toutes les opérations réalisables dans une machine virtuelle similaire, comme créer/modifier des fichiers ou configurer une application. Veuillez noter que ces modifications ne resteront que pour ce conteneur, et qu'après avoir détruit le conteneur, les modifications que vous avez apportées seront perdues.
Dans cette partie du tutoriel, vous apprendrez comment créer une nouvelle image Docker à partir d’un conteneur avec les modifications que vous avez apportées. Après Step5 vous avez un conteneur CentOS en cours d'exécution avec le serveur MySQL installé. Ce conteneur est maintenant différent de l'image CentOS de base. Vous pouvez enregistrer cet état du conteneur pour une utilisation ultérieure. Tout d'abord, vous devez quitter le conteneur en utilisant :
|
1 |
exit |
Validez (commit) les modifications que vous avez apportées dans le conteneur vers une nouvelle image Docker à l'aide de la commande ci-dessous :
|
1 |
docker commit -m "Modifications apportées à l'image" -a "Nom de l'auteur" container-id repository/new_image_name |
Dans la commande, -m fait référence au message de validation (commit) et doit essentiellement indiquer les modifications apportées, l'option -a est utilisée pour mentionner l'auteur. L'identifiant du conteneur (container-id) est celui de l' Step5, que vous avez obtenu après avoir exécuté le conteneur en mode interactif, et généralement, le dépôt (repository) est votre nom d'utilisateur pour Docker Hub. Par exemple :
|
1 |
docker commit -m "added mysql-server" -a "CloudSigma" 59839a1b7de2 finid/centos-mariadb |
|
1 |
Remarque: Après que la nouvelle image soit validée, elle est enregistrée sur votre . système Dans les prochaines étapes de ce , tutoriel, vous allez apprendre comment pousser une image vers Docker Hub et dans des registres similaires qui hébergent des images . dockerUne fois votre image est poussée au registre, , elle peut être consultée par d'autres également well. |
Maintenant que l'image est validée, la commande docker images devrait lister la nouvelle image ainsi que les anciennes :
|
1 |
docker images |
La sortie de la commande devrait être similaire à celle ci-dessous :
|
1 2 3 4 5 |
Sortie: REPOSITORY TAG IMAGE ID CREATED SIZE cloudsigma23/centos-mysql latest 1b9368efea70 13 secondes écoulées 308 Mo centos latest 300e315adb2f 2 mois écoulés 209 Mo hello-world latest bf756fb1ae65 13 mois écoulés 13.3 ko |
Comme on peut le voir dans l'exemple, une nouvelle image centos-mysql est créée en utilisant l'image CentOS de Docker Hub. La différence de taille indique que des modifications ont été apportées. Dans cet exemple, il s'agissait de l'ajout du serveur MySQL dans le conteneur. La prochaine fois que vous aurez besoin d'un conteneur avec un serveur MySQL, il vous suffira de lancer la nouvelle image, et voilà ! Vous disposez d'un conteneur CentOS avec un serveur MySQL préinstallé en cours d'exécution.
Étape 7 : Gestion des conteneurs Docker
Maintenant que vous êtes familier avec Docker, après l'avoir utilisé pendant un certain temps, vous avez déjà des conteneurs actifs et d'autres inactifs. Pour obtenir la liste des conteneurs actifs, vous devez utiliser :
|
1 |
docker ps |
Vous devriez voir une sortie similaire :
|
1 2 3 |
Sortie: CONTENEUR ID IMAGE COMMANDE CRÉÉ STATUT PORTS NOMS 604c889cf404 centos "/bin/bash" 20 minutes auparavant Up 20 minutes intelligent_easley |
Pour lister à la fois les conteneurs actifs et inactifs, vous devez utiliser l'option -a avec la commande :
|
1 |
docker ps -a |
Pour trouver le dernier conteneur que vous avez créé, vous pouvez utiliser l'option -l :
|
1 |
docker ps -l |
Pour arrêter un conteneur en cours d'exécution/actif, exécutez une commande simple :
|
1 |
docker stop conteneur-id |
Vous pouvez trouver l'id-conteneur dans la sortie de la commande Docker ps.
Étape 8 : Publication des images dans un dépôt
La prochaine étape après la création de la nouvelle image consiste à la partager avec vos amis. Vous pouvez également la rendre disponible pour le monde entier en utilisant Docker Hub ou tout autre registre. Vous devez vous connecter au registre respectif avant de pousser l'image.
Dans la partie suivante du tutoriel, vous apprendrez comment pousser les images vers Docker Hub. Tout d'abord, inscrivez-vous sur Docker Hub. Vous devrez vous connecter à Docker Hub pour pousser votre image à l'aide de la commande ci-dessous :
|
1 |
docker login -u docker-registry-username |
Une fois que vous aurez fourni le bon mot de passe et que l'authentification aura réussi, vous pourrez pousser votre image. Pour pousser l'image, utilisez la commande ci-dessous :
|
1 |
docker push docker-registry-username/docker-image-name |
La sortie de la commande sera similaire à ceci :
|
1 2 3 4 5 |
Sortie: Le push fait référence au dépôt [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Poussé 2653d992f4ef: Monté depuis library/centos ... |
Une fois que vous avez poussé l'image, elle devrait apparaître sur le tableau de bord de votre compte, comme le montre l'image ci-dessous :

En cas d'échec similaire, il est probable que vous ne vous soyez pas connecté :
|
1 2 3 4 5 6 7 |
Sortie: Le push fait référence au dépôt [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Couche déjà existe 2653d992f4ef: Couche déjà existe erreurs: refusé: demandé l'accès à la ressource est refusé non autorisé: authentification requise |
Vous pouvez vous connecter et répéter la tentative de push.
Conclusion
Il existe de nombreuses façons d'utiliser Docker. Ce tutoriel devrait vous fournir suffisamment d'informations pour commencer. Et comme Docker est un projet très tendance, vous pouvez trouver de nombreux détails sur l'utilisation ainsi que différents cas d'utilisation sur la page de blog du projet.
Vous pouvez également consulter nos autres tutoriels Docker pour en savoir plus sur ce que vous pouvez faire avec Docker :
- Nettoyer les ressources Docker – Images, conteneurs et volumes
- Déploiement de Laravel, Nginx et MySQL avec Docker Compose
- Exécutez votre propre serveur VPN sous Docker avec OpenVPN Access Server
Bonne informatique !
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.