Où sont stockés les images et les conteneurs Docker sur l'hôte ?  – CloudSavvy IT
Agence web » Actualités du digital » Comment utiliser Docker pour essayer un logiciel en toute sécurité

Comment utiliser Docker pour essayer un logiciel en toute sécurité

Docker vous permet de conditionner les logiciels sous forme de conteneurs autonomes qui partagent le noyau de leur hôte mais ressemblent et se sentent comme des machines virtuelles indépendantes. Le logiciel qu’il contient fonctionne avec des performances quasi natives. Cela fait des conteneurs Docker un excellent moyen d’essayer de nouveaux packages en toute sécurité sans les installer « bare metal » sur votre machine. Voici quelques-unes des techniques que vous pouvez utiliser.

Pourquoi utiliser Docker pour essayer un logiciel ?

L’installation directe à partir d’un gestionnaire de packages n’est pas toujours souhaitable lorsque vous essayez un logiciel pour la première fois. Vous ne voudrez peut-être pas exécuter un démon ou un service réseau non éprouvé sur votre matériel. Certains programmes de désinstallation ne suppriment pas tous les fichiers connectés à leur package, laissant votre machine encombrée de configurations orphelines si vous décidez de ne pas utiliser le logiciel à long terme.

Dans le pire des cas, le package que vous téléchargez pourrait même être malveillant ou compromis. Opter pour une installation bare metal met vos données en danger. Au moment où vous vous rendez compte d’un problème, les attaquants pourraient déjà avoir glané des informations sensibles à partir de leur script d’installation infâme.

Les conteneurs Docker vous offrent un bac à sable isolé où vous pouvez installer de nouveaux packages sans vous soucier de ces problèmes. Comparé à la création d’une toute nouvelle machine virtuelle, Docker est plus léger et plus rapide, mais offre un niveau de sécurité similaire lorsqu’il est configuré pour une exécution sûre.

Les packages que vous installez dans un conteneur modifieront le système de fichiers de ce conteneur, laissant les données de votre hôte intactes. Les packages malveillants auront beaucoup plus de mal à compromettre votre système car ils devront sortir du conteneur pour atteindre votre hôte. Les installateurs qui recherchent des fichiers de configuration intéressants à partir d’autres packages verront un nouveau système de fichiers au lieu de vos données utilisateur.

S’il s’avère qu’un package ne vous convient pas, « désinstallez-le » en supprimant simplement votre conteneur Docker en bac à sable. Il n’en restera aucune trace sur votre système.

Trouver des images Docker

Lorsque vous cherchez à essayer quelque chose de nouveau, il est préférable de commencer par rechercher dans Docker Hub et de voir s’il existe déjà une image de conteneur pour le package que vous avez choisi. Les images fournissent des déploiements prêts à l’emploi de logiciels spécifiques, similaires à une ISO de VM préconfigurée avec un ensemble de packages.

De nombreux projets populaires proposent désormais des images Docker officielles dans le cadre de leurs sorties. Ceux-ci sont clairement marqués sur Docker Hub avec un badge vert « Image officielle ».

Parfois, vous pouvez trouver une image non officielle qui fournit le package que vous recherchez mais qui est publiée par un membre de la communauté. Cela vaut la peine de vérifier d’abord les statistiques de téléchargement pour évaluer si d’autres l’utilisent avec succès.

Vous devez également vous assurer que l’image a une variante pour la version du logiciel que vous souhaitez. Les images distingueront différentes versions à l’aide de balises Docker, telles que mongo:5 pour MongoDB 5 et mongo:4 pour MongoDB 4. Utilisez la vue Balises de Docker Hub pour voir les options disponibles et quand elles ont été mises à jour pour la dernière fois.

Utiliser une image

Une fois que vous avez trouvé une image, démarrez un conteneur à partir de celle-ci. Vous devez vous référer à la description de votre image sur Docker Hub pour obtenir des instructions spécifiques pour le logiciel que vous avez sélectionné.

En général, les images empaquetant une application interactive peuvent être démarrées en utilisant cette séquence :

docker run -it example-image:latest

Images de démarrage qui fournissent des processus d’arrière-plan avec le -d signaler à la place :

docker run -d example-image:latest

le docker run La commande démarre un conteneur à l’aide de l’image spécifiée. Votre logiciel s’exécute maintenant dans un environnement isolé avec son propre système de fichiers. Vous pouvez exécuter plusieurs instances indépendantes simultanément en démarrant plusieurs conteneurs à partir de l’image.

Et s’il n’y a pas d’image ?

L’absence d’une image Docker officielle – ou non officielle – pour le progiciel que vous avez choisi n’est pas la fin de votre parcours d’essai avec Docker. Dans ce cas, créez un conteneur à partir d’une image de base du système d’exploitation pour héberger votre environnement isolé. Vous pouvez ensuite exécuter la procédure d’installation normale du logiciel pour l’installer dans votre conteneur.

Voici un exemple qui démarre un nouvel environnement Ubuntu dans Docker :

docker run -it ubuntu:20.04

le -it Les drapeaux signifient que vous serez déposé dans un shell interactif s’exécutant dans le terminal. Vous pouvez maintenant utiliser apt, curl, wget, ou toute autre étape nécessaire pour installer et essayer votre package cible.

apt update
apt install example-package
example-package --example-flags

Si vous souhaitez répéter ces étapes à l’avenir, écrivez un fichier Docker qui vous permet de créer votre propre image :

FROM ubuntu:20.04
apt update
apt install example-package
ENTRYPOINT ["example-package"]
CMD [""]

Construisez votre image :

docker build -t example-package:latest .

Utilisez maintenant votre image pour démarrer un conteneur qui exécute automatiquement le example-package binaire ajouté à l’image de base d’Ubuntu :

docker run -it example-package:latest --example-flags

Cela fonctionne car le binaire est défini comme la commande de l’image Docker dans votre Dockerfile. Il s’exécutera automatiquement au démarrage du conteneur, recevant les indicateurs que vous passez à docker run.

Prendre des instantanés

Un autre avantage de l’utilisation de Docker pour essayer de nouveaux logiciels est sa capacité à créer des instantanés de l’état actuel d’un conteneur. Ceci est utile lorsque vous testez différents paramètres et que vous souhaitez sauvegarder une configuration spécifique afin de pouvoir y revenir facilement plus tard.

Utilisez le docker commit commande pour créer une nouvelle image à partir du système de fichiers d’un conteneur :

docker commit my-container package-snapshot:latest

Vous devez remplacer my-container avec l’identifiant ou le nom de votre conteneur. Vous pouvez obtenir ces détails en exécutant docker ps qui affiche tous les conteneurs en cours d’exécution dans l’ordre dans lequel ils ont été démarrés. La commande marquera l’image instantanée comme package-snapshot:latest.

Vous pouvez désormais appliquer toutes les modifications dont vous avez besoin à votre conteneur existant sans vous soucier de casser votre état actuel. Si vous souhaitez revenir en arrière, utilisez docker run pour démarrer un autre conteneur à partir du package-snapshot:latest image.

Nettoyer

Lorsque vous avez fini d’expérimenter, Docker facilite la « désinstallation » de votre logiciel sans laisser de trace. Supprimez d’abord vos conteneurs :

docker rm my-container

Effacez ensuite les images que vous avez téléchargées :

docker rmi example-image:latest

Vous êtes maintenant revenu à un état propre. Comme tout ce qui concerne le logiciel n’existait qu’à l’intérieur de votre conteneur, le système de fichiers de votre hôte restera inchangé.

Données persistantes

Un défi que vous pourriez rencontrer est le moment où vous souhaitez suspendre vos essais et les reprendre plus tard. Les conteneurs Docker réinitialisent leur état lorsqu’ils sont arrêtés, de sorte que toutes les modifications apportées au système de fichiers, telles que l’ajout de fichiers de configuration, seront perdues.

Vous pouvez résoudre ce problème en montant des volumes dans le conteneur afin que les fichiers importants soient conservés sur votre hôte. Utilisez le -v drapeau avec docker run pour ça.

docker run -it -v config-volume:/etc/example-package/conf.d example-package:latest

Les volumes survivent aux conteneurs individuels, vous pouvez donc restaurer vos fichiers dans un nouveau conteneur en fournissant le même -v drapeaux. Supprimer des volumes avec le docker volume rm commander.

Conclusion

Docker est un moyen rapide et facile d’essayer des logiciels en toute sécurité sans polluer l’environnement de votre machine hôte. Il vous permet de trier les nouveaux packages avant de les présenter aux systèmes sensibles et au matériel nu.

L’utilisation de Docker offre la possibilité d’analyser le logiciel avant de l’exécuter. Le composant Docker Scan intégré identifie les vulnérabilités dans les packages d’une image, vous donnant un aperçu des implications en matière de sécurité. Utiliser docker scan example-package:latest pour numériser les images téléchargées.

Vous pouvez choisir de continuer à utiliser votre installation de logiciel Dockerized après votre expérimentation initiale. Alternativement, vous pouvez utiliser ce que vous avez appris pour configurer une installation sans système d’exploitation fonctionnelle avec une confiance accrue que le package fait ce qu’il prétend.

★★★★★