Déployer sur Azure Container Instances avec Docker Desktop

Publié le 25 juin, 2020

Senior Program Manager, Azure Tools

Ce billet de blog a été coécrit par MacKenzie Olson, responsable de programme, Azure Container Instances.

Aujourd’hui, nous sommes ravis d’annoncer la première version de la nouvelle intégration de Docker Desktop avec Microsoft Azure. Le mois dernier, Microsoft et Docker ont annoncé cette collaboration et, aujourd’hui, vous pouvez l’expérimenter vous-même.

La nouvelle version Edge de Docker Desktop fournit une intégration entre Docker et Microsoft Azure. Celle-ci vous permet d’utiliser des commandes Docker natives pour exécuter vos applications en tant que conteneurs serverless avec Azure Container Instances.

Vous pouvez utiliser l’interface de ligne de commande Docker pour vous connecter rapidement et facilement à Azure, créer un contexte Container Instances à l’aide d’un abonnement Azure et d’un groupe de ressources, puis exécuter vos applications à conteneur unique sur Container Instances à l’aide de la commande docker run. Vous pouvez également déployer des applications multi-conteneurs sur Container Instances qui sont définies dans un fichier Docker Compose à l’aide de docker compose up.

Code-à-cloud avec des conteneurs serverless

Azure Container Instances est une excellente solution pour exécuter un seul conteneur Docker ou une application composée de plusieurs conteneurs définis avec un fichier Docker Compose. Avec Container Instances, vous pouvez exécuter vos conteneurs dans le cloud, sans avoir à configurer d’infrastructure, et également profiter de fonctionnalités telles que le montage de dépôts Stockage Azure et GitHub en tant que volumes. Comme il n’y a pas de surcharge liée à la gestion d’une infrastructure ou d’une plateforme, Container Instances s’adresse à ceux qui ont besoin d’exécuter rapidement des conteneurs dans le cloud.

Container Instances est également une bonne cible pour exécuter les mêmes charges de travail en production. En production, nous vous recommandons d’utiliser les commandes Docker à l’intérieur d’un flux CI/CD automatisé. Cela permet de gagner du temps lors de la réécriture des fichiers de configuration, car les mêmes fichiers Dockerfile et Docker Compose peuvent être déployés en production avec des outils tels que GitHub Actions. Container Instances a également un modèle de tarification à l’utilisation, ce qui signifie que vous êtes facturé en fonction de la consommation de CPU et de mémoire par seconde, uniquement lorsque le conteneur est en cours d’exécution.

Voyons la nouvelle intégration Docker Azure à l’aide d’un exemple. Nous disposons d’un conteneur de travail qui extrait continuellement les commandes d’une file d'attente et effectue le traitement nécessaire associé aux commandes. Voici les étapes pour exécuter ces opérations dans Container Instances avec des commandes Docker natives :

Créer et exécuter un conteneur dans Azure Container Instances à l’aide de l’interface de ligne de commande Docker

Exécuter un conteneur unique

Comme vous pouvez le voir dans l’animation ci-dessus, la nouvelle intégration de l’interface de ligne de commande Docker avec Azure facilite l’exécution d’un conteneur dans Azure Container Instances. À l’aide de l’interface de ligne de commande Docker uniquement, vous pouvez vous connecter à Azure avec l’authentification multifacteur et créer un contexte Docker en utilisant Container Instances comme backend. Vous trouverez des informations détaillées sur les contextes Container Instances dans la documentation.

Une fois que le nouveau contexte Container Instances est créé, il peut être utilisé pour cibler Container Instances avec bon nombre des commandes Docker standard que vous utilisez probablement déjà, par exemple docker run, docker ps et docker rm. L’exécution d’une simple commande docker run <image> démarre un conteneur dans Container Instances à l’aide de l’image stockée dans un registre, tel que Docker Hub ou Azure Container Registry. Vous pouvez exécuter d’autres commandes Docker courantes pour inspecter, attacher et afficher des journaux à partir du conteneur en cours d’exécution.

Utiliser Docker Compose pour déployer une application incluant plusieurs conteneurs

Nous voyons de nombreuses applications en conteneur qui se composent de quelques conteneurs associés. Les conteneurs « sidecar » exécutent souvent des services de journalisation ou de signature pour le conteneur principal. Avec la nouvelle intégration Azure/Docker, vous pouvez utiliser Docker Compose pour décrire ces applications à plusieurs conteneurs.

Vous pouvez utiliser un contexte Container Instances et un fichier Docker Compose dans le cadre de votre boucle interne d’édition-génération-débogage, ainsi que vos flux CI/CD. Cela vous permet d’utiliser les commandes docker compose up and down pour lancer ou arrêter plusieurs conteneurs à la fois dans Container Instances.

Utilisation de Visual Studio Code pour une expérience encore plus efficace

L’extension Docker dans Visual Studio Code vous offre une expérience intégrée pour démarrer, arrêter et gérer vos conteneurs, vos images, vos contextes et bien plus encore. Utilisez l’extension pour générer des modèles de fichiers Dockerfiles et Docker Compose pour le langage de votre choix. Pour Node.js, Python et .NET, vous bénéficiez d’un débogage intégré, en un clic, de votre application à l’intérieur du conteneur. Bien évidemment, vous disposez également de l’Explorateur, qui a plusieurs volets qui facilitent la gestion de vos objets Docker, directement à l’intérieur de Visual Studio Code.

Utilisez le volet Conteneurs pour répertorier, démarrer, arrêter, inspecter, afficher des journaux et bien plus encore.

 o	Le Volet Conteneurs Containers dans Docker Explorer affiche tous les conteneurs et vous permet de les gérer

Dans le volet Images, vous pouvez répertorier, extraire, catégoriser et transmettre vos images.

 o	Le volet Images dans Docker Explorer affiche toutes les images et vous permet de les gérer
Connectez-vous à Azure Container Registry et à Docker Hub dans le volet Registres pour afficher et gérer vos images dans le cloud. Vous pouvez même déployer directement sur Azure.

 o	Le Panneau Registres de Docker Explorer affiche les registres que vous avez connectés pour autoriser la transmission et l’extraction d’images

Le volet Contextes vous permet de répertorier tous vos contextes et de passer rapidement de l’un à l’autre. Lorsque vous changez de contexte, les autres volets sont actualisés pour afficher les objets Docker du contexte sélectionné. Les contextes Container Instances seront entièrement pris en charge dans la prochaine version de l’extension Docker.

o	Le Volet Contextes dans Docker Explorer affiche tous les contextes et vous permet de passer de l’un à l’autre

Essayer

Pour commencer à utiliser l’intégration Docker/Azure, installez la version Edge Docker Desktop. Vous pouvez tirer parti de l’extension Docker actuelle dans Visual Studio Code dès aujourd’hui. La prise en charge des contextes Container Instances sera bientôt ajoutée.

Pour en savoir plus sur la publication de Docker Desktop, lisez ce billet de blog sur le site de Docker. Des informations sur l’utilisation des contextes Container Instances Docker sont disponibles dans la documentation.