Si vous êtes dans l'industrie informatique, il y a de fortes chances que vous ayez entendu parler de Docker, à moins que vous ne viviez dans une grotte ou une région éloignée complètement isolée du reste du monde. Docker est une technologie de conteneurisation open source qui a révolutionné la façon dont les développeurs développent et déploient des applications. Il permet aux équipes de développement de créer, gérer et déployer des applications dans des conteneurs. Un conteneur est un package logiciel pré-construit autonome qui contient ses propres bibliothèques et dépendances. Les conteneurs s'exécutent dans un isolement complet du système d'exploitation hôte et également les uns des autres.
Docker offre d'immenses avantages. Avant la conteneurisation, les développeurs rencontraient des problèmes lors de l'écriture et du déploiement de code sur diverses versions de Linux. Une application fonctionnerait parfaitement bien sur un système pour échouer sur un autre système. Docker standardise le déploiement du code et garantit que les applications peuvent s'exécuter de manière transparente dans divers environnements informatiques sans rencontrer de problèmes de dépendance ou d'erreurs. De plus, les conteneurs contribuent à de vastes économies d'échelle. Docker est respectueux des ressources, léger et assez efficace.
Dans ce guide, nous installerons Docker sur Arch Linux et apprendrons également à utiliser Docker pour exécuter des conteneurs.
Prérequis
- Instance Arch Linux avec accès SSH
- Un utilisateur sudo configuré
- Connexion Internet stable
Étape 1) Installer Docker sur Arch Linux
Il existe différentes manières d'installer Docker. Vous pouvez installer le package stable hébergé sur le référentiel de la communauté Arch ou l'installer à partir d'AUR.
Cependant, nous allons installer Docker sur Arch Linux à partir du référentiel en utilisant la commande comme indiqué.
$ sudo pacman -S docker
Étape 2) Gestion de Docker
Docker s'exécute en tant que service démon, tout comme d'autres services tels qu'Apache ou SSH. Cela signifie que vous pouvez démarrer, arrêter, redémarrer et activer le service Docker.
Une fois l'installation terminée, démarrez Docker et activez-le au démarrage à l'aide des commandes ci-dessous.
$ sudo systemctl start docker $ sudo systemctl enable docker
Pour confirmer que le service Docker est en cours d'exécution, lancez la commande :
$ sudo systemctl status docker
La sortie ci-dessous montre clairement que Docker est opérationnel.
Pour arrêter docker, appelez la commande :
$ sudo systemctl stop docker
De plus, vous pouvez confirmer la version de Docker que vous utilisez à l'aide de la commande docker version affichée.
$ sudo docker version
Comment tester et utiliser Docker
Pour tester si tout fonctionne comme prévu, nous allons exécuter la commande docker suivante pour lancer un conteneur "hello-world"
$ sudo docker run hello-world
Lorsque la commande est invoquée, docker contacte le hub Docker et télécharge une image docker appelée "hello-world". Docker crée ensuite un nouveau conteneur qui exécute le script exécutable qui diffuse le message "Bonjour de Docker !".
Pour télécharger ou extraire une image du hub Docker sans l'exécuter, utilisez la syntaxe :
$ sudo docker pull
Par exemple, pour extraire une image Nginx, exécutez :
$ sudo docker pull nginx
Pour vérifier les images résidant sur votre système, appelez :
$ sudo docker images
À partir de la sortie, vous pouvez voir que nous avons jusqu'à présent deux images :l'image Nginx et hello-world qui a été téléchargée précédemment. La sortie fournit des informations supplémentaires telles que le référentiel, la balise d'image, l'ID de l'image, la date de modification et la taille de l'image.
Pour exécuter une image, appelez la commande :
$ sudo docker run
Cependant, l'exécution directe d'une image peut vous laisser avec un terminal qui ne répond pas car l'image s'exécute généralement au premier plan. Par conséquent, il est recommandé de l'exécuter en arrière-plan à l'aide de l'option -d.
Par exemple, pour exécuter l'image Nginx en arrière-plan, exécutez :
$ sudo docker run -d nginx
Pour confirmer les conteneurs en cours d'exécution, lancez la commande :
$ sudo docker ps
Pour afficher tous les conteneurs, à la fois en cours d'exécution et ceux qui ont été précédemment arrêtés, exécutez :
$ sudo docker ps -a
La sortie ci-dessous nous donne le conteneur Nginx actuel et le conteneur "Hello-world" que nous avons exécuté précédemment.
Pour arrêter un conteneur, utilisez la commande docker stop suivie de l'ID du conteneur. Par exemple, pour arrêter le conteneur Nginx, exécutez :
$ sudo docker stop 968ff5caba7f
Certains conteneurs générés à partir d'images de système d'exploitation peuvent nécessiter une certaine interaction de l'utilisateur. Par exemple, vous souhaiterez peut-être interagir avec une image de conteneur Ubuntu et accéder au shell pour exécuter des commandes. Pour ce faire, utilisez le drapeau -it.
Pour mieux illustrer cela, nous allons télécharger l'image du docker Ubuntu 20.04.
$ sudo docker pull ubuntu:20.04
Nous allons maintenant accéder au shell et exécuter des commandes à l'intérieur du conteneur.
$ sudo docker run -it ubuntu:20.04
Parfois, vous souhaiterez peut-être exécuter un conteneur de serveur Web et mapper son port sur le système hôte pour y parvenir, utilisez l'option -p indiquée
$ sudo docker -p 8080:80 nginx
Le port 80 est le port sur lequel le conteneur Nginx écoute et qui est mappé sur le port 8080 sur l'hôte. Vous pouvez tester cela en accédant au serveur Web Nginx à l'aide de l'adresse IP de l'hôte, comme indiqué :
http://host-ip:8080
Conclusion
Docker est sans aucun doute un outil puissant et robuste, en particulier dans le domaine DevOPs. Il rationalise le flux de travail et aide les développeurs à créer et déployer de manière transparente leurs applications sans les incohérences qui accompagnent les différents environnements informatiques. Nous avons à peine effleuré la surface en ce qui concerne l'utilisation de la commande Docker. Pour plus de documentation, rendez-vous sur le guide du débutant. De plus, il existe la documentation officielle pour vous aider à naviguer dans Docker.