GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment gérer les conteneurs Docker ? Les meilleures pratiques

Docker a révolutionné le développement de logiciels grâce à l'utilisation de conteneurs et est aujourd'hui la principale plate-forme de conteneurs.

Les conteneurs suppriment de nombreux processus fastidieux du développement logiciel. Maximisez le potentiel de Docker en mettant en œuvre les meilleures pratiques pour améliorer la sécurité, la rapidité et l'efficacité.

Dans ce didacticiel, nous abordons les bonnes pratiques de gestion des conteneurs Docker.

Qu'est-ce que Docker ?

Docker est un utilitaire open source qui élimine les tâches répétitives dans le développement de logiciels.

Il permet à un développeur de créer un conteneur, un environnement contrôlé pour exécuter un processus.

Le conteneur utilise une image, une réplique d'un environnement d'exploitation spécifique. Bien que cela ressemble à de la virtualisation de serveur, les conteneurs Docker sont simplifiés pour exécuter une commande avec un minimum de ressources en ne chargeant que les bibliothèques et les dépendances nécessaires.

Meilleures pratiques pour la gestion des conteneurs Docker

Gérer l'efficacité des conteneurs Docker avec une bonne planification

Lors de la cartographie de votre processus logiciel, il est préférable de planifier le système de conteneurs pour vous assurer d'accomplir les tâches avec le moins de travail et de ressources.

Avant de créer et d'exécuter ces environnements virtuels, réfléchissez à la manière dont vous pouvez mapper chaque processus sur un conteneur et à la manière dont ces conteneurs interagissent.

De plus, vous devriez examiner si les conteneurs sont le meilleur outil pour vous. Bien que Docker présente de nombreux avantages, certaines applications fonctionnent mieux sur des machines virtuelles.

Examinez la différence entre les conteneurs et les VM et décidez lequel correspond le mieux à vos besoins.

Optimiser la vitesse des conteneurs

Contrairement à une machine virtuelle, un conteneur n'a pas besoin d'une vaste bibliothèque de ressources pour fonctionner. Un conteneur peut charger, exécuter et décharger de la mémoire en une fraction de seconde.

Pour de meilleurs résultats de performances, vous souhaitez que vos images Docker restent petites et que votre Docker se construise rapidement. Il existe de nombreuses façons de réduire la taille de l'image, comme choisir une base d'image plus petite, utiliser des versions en plusieurs étapes et éviter les calques inutiles.

De même, la mise en cache locale des couches Docker existantes vous permet de reconstruire les images plus rapidement, en tirant parti de la vitesse de vos conteneurs.

Exécuter un seul processus dans chaque conteneur

Il n'y a pas de limite au nombre de conteneurs que vous pouvez lancer et supprimer. Chacun peut exécuter plusieurs processus dans son environnement.

Gardez à l'esprit que plus un conteneur effectue d'opérations, plus il est lent. Cela est particulièrement vrai si vous limitez l'utilisation du processeur et de la mémoire d'un conteneur. Le nombre de ressources nécessaires au chargement a un fort impact sur les performances. Il peut être facile de surcharger la mémoire en exécutant plusieurs tâches à la fois. L'utilisation d'un processus par conteneur permet de limiter ces ressources partagées et de réduire l'empreinte globale du conteneur.

Dédier un processus unique à chaque conteneur permet de maintenir un environnement d'exploitation propre et léger.

Utiliser les services SWARM

Si vous gérez plusieurs conteneurs sur plusieurs machines hôtes, envisagez d'utiliser les services Docker Swarm, un outil d'orchestration de conteneurs. Docker Swarm automatise de nombreuses tâches de planification et de gestion des ressources et permet une mise à l'échelle rapide si une croissance rapide est un problème.

Une alternative populaire à Swarm est Kubernetes, une plate-forme alternative pour automatiser le déploiement d'applications. Le choix entre Docker Swarm et Kubernetes dépend principalement des besoins de votre organisation.

Évitez d'utiliser des conteneurs pour stocker des données

Le stockage de données augmente les entrées/sorties (lecture/écriture sur disque) d'un conteneur.

Un meilleur outil de stockage de données est un référentiel de logiciels partagé.

L'accès au référentiel distant est accordé aux conteneurs sur demande, réduisant ainsi la taille du conteneur. Cela permet également d'empêcher différents conteneurs de charger et de stocker des données redondantes. Enfin, cela peut éviter les goulots d'étranglement lorsque plusieurs processus accèdent au stockage.

Trouvez et conservez une image Docker qui fonctionne

Une image contient toutes les configurations, dépendances et codes nécessaires à une tâche.

Il peut être difficile de créer une image pour tout le cycle de vie d'une application. Cependant, une fois que vous avez créé une image, évitez de la modifier. Il peut être tentant de mettre à jour une image Docker au fur et à mesure que les dépendances sont mises à jour. Mais modifier une image en cours de cycle peut faire des ravages dans le processus de développement. Cela est particulièrement vrai si différentes équipes utilisent des images avec des dépendances incompatibles.

L'utilisation d'une seule image du début à la fin facilite le dépannage.

Toutes les équipes travailleront avec le même environnement de base, passant moins de temps à rassembler différentes sections de code. De plus, une seule mise à jour peut être effectuée et testée sur plusieurs conteneurs. Il réduit le travail en double des mises à jour individuelles et des correctifs de code. Il aide également les équipes d'assurance qualité à identifier et résoudre les problèmes plus rapidement.

Mise en réseau dans des conteneurs

Les conteneurs dans Docker se voient attribuer des adresses IP pour communiquer entre eux. Cela peut créer des difficultés dans un environnement réseau.

Dans le passé, le ––LINK commande a été utilisée pour gérer l'adressage et les communications. Cette fonctionnalité est considérée comme héritée et a été remplacée par la mise en réseau en pont.

La mise en réseau de pont définie par l'utilisateur entre les conteneurs permet d'accéder à tous les ports du réseau de pont. Il bloque également tous les ports vers le monde extérieur. Cela crée un environnement sécurisé pour les conteneurs. Le trafic interne est ininterrompu et protégé des influences extérieures.

Pour plus d'informations sur les ponts définis par l'utilisateur (et d'autres technologies), consultez la documentation Docker.

Meilleures pratiques de sécurité Docker

L'équipe Docker a modernisé de nombreux protocoles de sécurité Internet modernes. Les développeurs de réseau d'origine n'ont pas intégré la sécurité dans les protocoles de réseau.

La mise à niveau de la sécurité est toujours difficile et coûteuse. Une bien meilleure pratique consiste à implémenter la sécurité pendant le développement.

Voici quelques options à considérer pour gérer la sécurité des conteneurs Docker .

1. Évitez d'exécuter des conteneurs avec des privilèges root

La plupart des administrateurs Linux connaissent les risques liés à l'octroi de privilèges root complets aux utilisateurs. Des avertissements similaires s'appliquent aux conteneurs. Une meilleure pratique consiste à créer des conteneurs avec uniquement les privilèges dont ils ont besoin.

Utilisez le –u tag pour spécifier un utilisateur (au lieu d'un administrateur).

2. Identifiants sécurisés

Conservez les informations d'identification dans un endroit différent de celui où vous les utilisez. De plus, les variables d'environnement sont un meilleur moyen de gérer l'accès au sein d'un conteneur.

Inclure des informations d'identification dans le même conteneur revient à conserver un mot de passe sur une note autocollante. Dans le pire des cas, une faille dans un conteneur peut rapidement se propager à toute une application.

3. Utilisez –PRIVILEGED Marquez avec parcimonie

Par défaut, les conteneurs s'exécutent dans un mode sans privilège plus sécurisé.

Les conteneurs ne pourront pas accéder à d'autres appareils. Si l'accès à d'autres appareils est requis, utilisez le –privileged tag pour accorder l'accès au cas par cas.

4. Utiliser des applications de sécurité tierces

C'est toujours une bonne idée d'avoir une deuxième paire d'yeux pour revoir votre configuration de sécurité. Des outils tiers tirent parti des compétences de spécialistes de la sécurité pour analyser votre logiciel. Ils peuvent également vous aider à analyser votre code à la recherche de vulnérabilités connues. De plus, ils incluent souvent une interface conviviale pour gérer la sécurité des conteneurs.

5. Envisagez de passer à des registres de logiciels privés

Docker Hub maintient un registre gratuit d'images logicielles, ce qui peut être très utile pour les développeurs novices ou les petites équipes de développement travaillant sur des projets complexes.

Cependant, la sécurité peut être un problème lors de l'utilisation de ces registres. Il vaut la peine d'évaluer les coûts et les avantages de l'hébergement de vos registres de logiciels. Si vous souhaitez un moyen pratique de distribuer des ressources et de partager des images Docker entre conteneurs, vous pouvez configurer un registre Docker privé.


No
Docker
  1. Comment créer, répertorier et supprimer des conteneurs Docker sous Linux

  2. Surveillance des conteneurs Docker :avantages, bonnes pratiques et outils indispensables

  3. Comment partager des données entre des conteneurs Docker

  4. Comment répertorier les conteneurs Docker

  5. Comment sauvegarder et restaurer des conteneurs Docker

Comment exécuter des conteneurs Docker

Comment supprimer les conteneurs Docker

Comment arrêter les conteneurs Docker

Comment nommer ou renommer les conteneurs Docker

Comment gérer les conteneurs Docker

Comment répertorier/démarrer/arrêter/supprimer les conteneurs docker