Docker est un bourreau de travail. Elle a également des opinions sur le type d'environnement qu'elle souhaite. Il s'attend à ce que vous puissiez installer des packages système, exécuter un démon en arrière-plan, gérer les utilisateurs et les autorisations, et conserver l'état à un endroit prévisible. C'est pourquoi une machine virtuelle (VM) est la voie à suivre sur Compute lorsque votre flux de travail dépend de Docker.
Si vous hésitez encore entre deux environnements d'exécution, lisez d'abord ceci : [[Interlink : VM or container : how to choose in 60 seconds]]. Si vous voulez une brève annonce et un aperçu de ce qui a changé, commencez ici : Compute prend désormais en charge les machines virtuelles (VM).
Pourquoi Docker s'adapte mieux à une machine virtuelle
Une instance de conteneur est conçue pour exécuter votre charge de travail dans un environnement géré. C'est parfait lorsque vous exécutez une seule application, un script ou une configuration de modèle standard. Cela devient gênant lorsque Docker lui-même fait partie de l'environnement.
Une machine virtuelle vous fournit les éléments manquants : l'accès à sudo, les packages système, les services et la référence « cela se comporte comme un hôte Linux normal » attendue par Docker. Pour la plupart des équipes, cela signifie moins de temps à trouver des solutions et moins de surprises par la suite.
Quand vous avez réellement besoin de Docker
Utilisez Docker sur une machine virtuelle de calcul lorsque vous effectuez l'une des opérations suivantes :
- Vous voulez Docker Compose pour les piles multiservices (API + worker + Redis + UI), et vous voulez qu'il se comporte de la même manière que sur votre ordinateur portable ou sur une machine virtuelle cloud traditionnelle.
- Vous créez un flux de travail de machine learning sous la forme d'un ensemble de conteneurs et vous souhaitez qu'il reste cohérent au niveau du développement, de la préparation et de la production.
- Vous exécutez des outils qui supposent l'existence de Docker (certains scripts de génération internes, des tâches CI ou des outils de plate-forme).
Si votre objectif est simplement « d'exécuter une seule charge de travail », ignorez Docker et utilisez une instance de conteneur Compute. C'est généralement plus simple. VM ou conteneur : comment choisir en 60 secondes
Ce dont vous avez besoin avant de commencer
Vous n'avez besoin que de deux choses pour démarrer :
- Une clé SSH pour vous connecter à la machine virtuelle.
- Une idée approximative de ce que vous voulez exécuter (un conteneur unique, un fichier Compose ou un dépôt contenant Dockerfiles).
Si vous avez déjà une pile Compose, c'est le bon moment pour noter les ports dont elle a besoin. Vous l'utiliserez dans les paramètres de connectivité lorsque vous créerez la machine virtuelle. Si vous ne le savez pas encore, gardez les choses fermées et ouvrez les ports plus tard lorsque vous serez prêt.
Lancez une machine virtuelle prête pour Docker
Dans la console :
- Cliquez sur Créer, puis choisissez Machine virtuelle.
- Choisissez votre emplacement et votre matériel (GPU ou vCPU).
- Choisissez un système d'exploitation. Si vous n'avez pas de préférence, Ubuntu est généralement le choix le moins surprenant pour les flux de travail Docker-first.
- Sous Connectivité, ajoutez votre clé publique SSH.
- Créez la machine virtuelle, attendez qu'elle atteigne Running, puis connectez-vous via SSH depuis la page de l'instance.
Si vous voulez la référence canonique « clic par clic », utilisez : Démarrage rapide du calcul ou Lancez votre première instance de calcul et connectez-vous à celle-ci.
Installez Docker et effectuez un rapide contrôle de santé
Consultez ce guide pour connaître les étapes d'installation exactes sur Ubuntu, Debian ou Fedora : Installation de Docker sur une machine virtuelle de calcul.
Une fois Docker installé, vous pouvez traiter votre machine virtuelle comme n'importe quel autre hôte Docker : extraire des images, exécuter des conteneurs et utiliser Docker Compose pour les piles.
Exposez les bons ports, et uniquement les bons ports
Un mode de défaillance courant est « il fonctionne, mais je n'arrive pas à l'atteindre ».
Dans ce cas, vérifiez deux choses :
- Votre conteneur écoute réellement sur le port que vous pensez être (à l'intérieur de la machine virtuelle).
- Vous avez rendu ce port accessible depuis l'extérieur (paramètres de connectivité ou redirection de port SSH).
Si vous voulez la version en anglais clair de « SSH vs HTTPS vs TCP vs UDP », utilisez ceci : SSH, HTTPS, TCP, UDP : comment exposer un service depuis une machine virtuelle de calcul. Si vous transférez un port local pour utiliser une interface utilisateur Web, ce document est la référence fiable : Comment transférer des ports pour accéder à votre application Web.
Questions fréquentes
Puis-je exécuter Docker sur Compute ?
Oui Utilisez une machine virtuelle. Une machine virtuelle vous donne le contrôle attendu par Docker au niveau du système d'exploitation. VM ou conteneur : comment choisir en 60 secondes
Ai-je besoin de Docker pour exécuter des conteneurs sur Compute ?
Non. Si vous ne souhaitez exécuter qu'une seule charge de travail, une instance de conteneur Compute est généralement la solution la plus simple. Docker devient utile lorsque vous avez besoin de piles multiservices, de Compose ou d'outils supposant l'existence de Docker.
Et si je commençais par une instance de conteneur et que j'avais maintenant besoin de Docker ?
C'est une voie normale. Créez une machine virtuelle avec la même région et la même classe matérielle, redéployez votre charge de travail et considérez-la comme une « graduation » vers le contrôle au niveau du système d'exploitation. Quand cela vaut la peine de passer d'une instance de conteneur à une machine virtuelle
Essayer sur Compute
Si Docker fait partie de la façon dont vous expédiez le travail, ne vous opposez pas à votre environnement d'exécution. Lancez une machine virtuelle, installez Docker une fois, exécutez votre stack et continuez à avancer.
