Maîtriser l’interface de ligne de commande Docker
En tant que développeur frontend, apprendre à utiliser Docker contribuera à simplifier le processus de création, de test et de déploiement de vos applications Web.
C’est une compétence précieuse sur le marché du travail d’aujourd’hui. L’ajout de Docker à votre ensemble d’outils peut vous permettre de vous démarquer auprès des employeurs potentiels. Démontrer votre maîtrise de Docker mettra également en évidence votre capacité à collaborer avec des développeurs backend, qui utilisent souvent Docker.
Dans cet article, je passerai en revue certaines commandes Docker essentielles que tout développeur frontend devrait connaître.
Si vous voulez suivre un exemple réel, clonez cette Référentiel GitHub, qui contient le code d’une application React simple construite à l’aide de Vite.
Dans l’exemple de référentiel, le Dockerfile demande à Docker de créer et exécuter l’application React en tant que site statique à l’aide de NGINX.
Commençons!
La première commande que tout développeur frontend devrait connaître est docker build
. Cette commande est utilisée pour construire une image Docker à partir d’un Dockerfile. Un Dockerfile est un script qui contient des instructions pour créer l’image.
La syntaxe pour le docker build
la commande est :
docker build -t [image_name] [path/to/dockerfile]
Pour reprendre notre exemple, cd
dans le répertoire racine du projet (où se trouve le Dockerfile) et exécutez la commande suivante :
docker build -t my-app:v1 .
Les -t
argument est la forme abrégée de -tag
argument et vous permet de spécifier un nom et une balise facultative (la partie suivant les deux-points) pour l’image.
Les balises sont généralement utilisées pour distinguer les versions de l’image. Si vous omettez une balise (par exemple, si vous deviez simplement exécuter docker build -t my-app
l’image recevrait automatiquement la balise « dernière »).
Pour répertorier toutes les images docker qui ont été construites localement, vous utiliseriez le docker images
commande.
Si vous l’exécutez, vous devriez voir l’image my-app répertoriée. Noter que docker images
est équivalent à la commande docker image ls
Une fois que vous avez créé une image, comment l’exécutez-vous ? Vous utiliseriez le docker run
commande. La syntaxe de la commande docker run est :
docker run -p <host_port>:<container_port> [image_name]
Par exemple, si vous souhaitez démarrer le conteneur pour l’image étiquetée « my-app:v1 » et y accéder sur le port 80, vous exécuterez :
docker run -p 80:80 my-app:v1
Cet exemple suppose que le Dockerfile expose l’application sur le port 80. Pour mapper vers un autre port hôte, spécifiez un numéro différent pour la première partie du -p
argument.
Si vous exécutez cette commande, vous remarquerez que la fenêtre de votre terminal est verrouillée sur le processus en cours d’exécution. Si vous souhaitez exécuter le conteneur en arrière-plan, ajoutez le -d
argumentation comme celle-ci :
docker run -d -p 80:80 my-app:v1
La commande renverra l’identifiant du conteneur et vous rendra le contrôle de la fenêtre du terminal.
Lorsque vous exécutez un conteneur, Docker lui attribue un nom aléatoire comme « happy-einstein ». Vous pouvez spécifier votre propre nom en incluant le --name
argument.
Par exemple, nous pourrions donner au conteneur exécutant l’image my-app le nom « vite-app » comme ceci :
docker run -d -p 80:80 --name vite-app my-app:v1
Pour répertorier tous les conteneurs en cours d’exécution, exécutez
docker ps
Si vous avez suivi jusqu’à présent, vous devriez voir le conteneur my-app répertorié, ainsi que son identifiant de conteneur et son nom d’image.
Pour démarrer ou arrêter un conteneur, la syntaxe est :
docker start|stop <container_name> (or <container_id>)
Donc, pour arrêter notre conteneur personnalisé, exécutons :
docker stop vite-app
Pour le redémarrer, vous exécuteriez :
docker start vite-app
Pointe: Une fois que le conteneur a cessé de s’exécuter, il n’apparaît plus dans la liste des conteneurs en cours d’exécution (docker ps
). Mais vous pouvez toujours le voir dans la liste si vous exécutez cette commande qui affiche tous les conteneurs, qu’ils soient en cours d’exécution ou arrêtés :
docker ps --all
À l’aide de la commande docker logs, vous pouvez afficher les journaux d’un conteneur en cours d’exécution. La syntaxe est :
docker logs [container_name]
Par exemple, pour afficher les journaux du conteneur que nous avons nommé « vite-app », exécutez la commande suivante :
docker logs vite-app
Cette commande aide à déboguer les problèmes de démarrage ou les exceptions levées dans le conteneur.
Une autre commande utile est docker exec
. Cette commande vous permet d’exécuter des commandes dans un conteneur déjà en cours d’exécution.
La syntaxe pour le docker exec
la commande est :
docker exec -it [container_name] [command_to_run]
Par exemple, si vous souhaitez ouvrir un shell à l’intérieur du conteneur « vite-app », exécutez :
docker exec -it vite-app sh
Pointe: Pour quitter le shell interactif, tapez ‘exit’.
Une fois que vous avez créé une image pour votre application et testé son exécution, comment la partagez-vous avec votre équipe ou la déployez-vous auprès d’un fournisseur de cloud ? Pour ce faire, vous avez besoin d’un registre de conteneurs.
Hub Docker est un registre de conteneurs public, ce qui signifie que n’importe qui peut accéder et télécharger les images qui y sont stockées, à moins que l’utilisateur ne rende le référentiel privé.
D’autres fournisseurs de cloud tels qu’AWS, Azure et GCP fournissent des registres de conteneurs privés permettant aux utilisateurs de stocker et de gérer leurs images.
Pour vous connecter à Docker Hub (en supposant que vous ayez un compte), vous utiliserez la commande :
docker login -u <username>
Les principaux fournisseurs de cloud fournissent généralement leur propre cli pour accéder à leurs registres de conteneurs, alors consultez leur documentation pour plus de détails.
Pour pousser une image vers Docker Hub, utilisez la commande docker push. La syntaxe est :
docker push <username>/<image_name>
Notez que Docker Hub suppose que vous avez nommé votre image dans le format de votre nom d’utilisateur Docker Hub, suivi de /
puis un nom d’image unique.
Une convention standard lors de la création d’images Docker est :
docker build -t <username>/<image_name>:<tag_name>
Par exemple, si je construisais l’exemple d’image pour mon compte Docker Hub, j’utiliserais quelque chose comme :
docker build — t matttburrellnet/vite-app:v1
Docker Hub marquerait automatiquement mon image nommée « vite-app » comme « v1 ».
Une fois que vous êtes connecté à un registre de conteneurs, vous pouvez extraire des images existantes à l’aide de la docker pull
commande:
docker pull mattburrellnet/vite-app:v1
Si vous avez utilisé Git, la fonctionnalité push et pull devrait vous sembler familière.