Tutoriel : Créer une image conteneur à déployer sur Azure Container Instances
Azure Container Instances permet de déployer des conteneurs Docker sur l’infrastructure Azure sans configurer de machines virtuelles ni adopter de service de niveau supérieur. Dans ce tutoriel, vous allez empaqueter une petite application web Node.js dans une image de conteneur pouvant être exécuté avec Azure Container Instances.
Dans ce premier article de la série, vous allez apprendre à :
- Cloner le code source de l’application à partir de GitHub.
- Créer une image conteneur à partir de la source de l’application.
- Tester l’image dans un environnement Docker local.
Dans les parties deux et trois du tutoriel, vous chargez votre image dans un conteneur Azure Container Registry, et vous la déployez dans Azure Container Instances.
Avant de commencer
Pour suivre ce didacticiel, vous devez satisfaire aux exigences suivantes :
Azure CLI : Azure CLI version 2.0.29 ou ultérieure doit être installée sur votre ordinateur local. Exécutez az --version
pour trouver la version. Si vous devez effectuer une installation ou une mise à niveau, consultez Installer Azure CLI.
Docker : ce tutoriel présuppose une compréhension de base des concepts Docker essentiels, tels que les conteneurs, les images conteneur et les commandes docker
de base. Pour apprendre les principes de base de Docker et des conteneurs, consultez la vue d’ensemble de Docker.
Docker : Pour suivre ce tutoriel, Docker doit être installé localement. Docker fournit des packages qui configurent l’environnement Docker sur macOS, Windows et Linux.
Important
Étant donné qu’Azure Cloud Shell n’inclut pas le démon Docker, vous devez installer Azure CLI et le moteur Docker sur votre ordinateur local pour suivre ce didacticiel. Vous ne pouvez pas utiliser Azure Cloud Shell pour ce didacticiel.
Obtenir le code d’application
L’exemple d’application dans ce tutoriel est une application web basique générée dans Node.js. L’application dessert une page HTML statique et ressemble à la capture d’écran suivante :
Utiliser Git pour cloner le référentiel de l’exemple d’application :
git clone https://github.com/Azure-Samples/aci-helloworld.git
Vous pouvez également télécharger l’archive ZIP directement à partir de GitHub.
Générer l’image de conteneur
Le fichier Dockerfile de l’exemple d’application montre comment le conteneur est généré. La génération du conteneur commence par une image officielle Node.js basée sur Linux Alpine, une petite distribution parfaitement adaptée aux conteneurs. Les fichiers d’application sont ensuite copiés dans le conteneur, les dépendances sont installées à l’aide de Node Package Manager, et l’application démarre.
FROM node:8.9.3-alpine
RUN mkdir -p /usr/src/app
COPY ./app/* /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js
Utilisez la commande docker build pour créer l’image de conteneur, et balisez-la aci-tutorial-app :
docker build ./aci-helloworld -t aci-tutorial-app
Le résultat de la commande docker build est similaire à ce qui suit (tronqué pour une meilleure lisibilité) :
docker build ./aci-helloworld -t aci-tutorial-app
Sending build context to Docker daemon 119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
---> Running in f4a1ea099eec
---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest
Utilisez la commande docker images pour voir l’image générée :
docker images
L’image que vous venez de créer doit apparaître dans la liste :
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 seconds ago 68.1 MB
Exécutez localement le conteneur
Avant d’essayer de déployer le conteneur dans Azure Container Instances, exécutez-le localement à l’aide de docker run et vérifiez qu’il fonctionne. Le commutateur -d
permet l’exécution du conteneur en arrière-plan, tandis que -p
vous permet de mapper un port arbitraire sur votre ordinateur vers le port 80 du conteneur.
docker run -d -p 8080:80 aci-tutorial-app
La sortie de la commande docker run
affiche les ID du conteneur en cours d’exécution en cas de réussite de celle-ci :
docker run -d -p 8080:80 aci-tutorial-app
```output
a2e3e4435db58ab0c664ce521854c2e1a1bda88c9cf2fcff46aedf48df86cccf
Accédez maintenant à l’adresse http://localhost:8080
dans votre navigateur pour confirmer l’exécution du conteneur. Une page web similaire à celle ci-dessous doit s’afficher :
Étapes suivantes
Dans ce tutoriel, vous avez créé une image de conteneur qui peut être déployée dans Azure Container Instances et vérifié qu’elle s’exécute localement. Dans ce tutoriel, vous avez effectué les actions suivantes :
- Clonage de la source de l’application à partir de GitHub
- Création d’une image conteneur à partir de la source de l’application
- Test de l’exécution locale du conteneur
Passez au tutoriel suivant de la série pour en savoir plus sur le stockage d’images de conteneur dans Azure Container Registry :