Réétudier Docker du point de vue du fonctionnement du système

Élément d'exploitation du système

--Gestion de la bibliothèque --Surveillance --Surveillance de la vie et de la mort --Suivi de la performance --Surveillance de la sécurité --Gestion de la capacité --Gestion des journaux

Éléments opérationnels mais non inclus cette fois

Principes de base que Docker devrait supprimer

Tout d'abord, j'écrirai deux points qui devraient être supprimés ici.

--Toutes les données seront effacées lorsque le conteneur est arrêté.

Créer une image Docker

Créez quelque chose appelé une image Docker. Fondamentalement, tout est écrit dans un code appelé DockerFile. Il n'apporte aucun changement après l'installation comme une configuration normale du système d'exploitation. Tous sont décrits dans le code.

Pour être précis, vous pouvez apporter des corrections même lorsque le conteneur est démarré, et dans de nombreux cas, vous apporterez des modifications, mais tout d'abord, cela est décrit ci-dessus pour une brève explication

Création et exploitation de conteneurs

Basé sur ce qu'on appelle DockerImage, DockerContena démarre et l'application s'exécute. Le conteneur en cours d'exécution est fondamentalement le même que Linux normal.

`En fait, le système d'exploitation côté conteneur a des restrictions sur les relations du noyau et les relations matérielles parce qu'il ne fait que déconner pour qu'il ressemble à un autre système d'exploitation, mais ce n'est pas lié à ce sujet, donc je vais économiser du travail. .. Par souci de simplicité, le système d'exploitation de base fonctionne! !! Je vais procéder comme. ''

Vous pouvez vous connecter à un conteneur en cours d'exécution avec telnet ou ssh et taper des commandes ou exécuter des programmes sur la ligne de commande. Lors de la création d'une image, le système d'exploitation de base Linux est en cours d'exécution car il sélectionne toujours ce qu'on appelle le système d'exploitation de base.

`Vous pouvez personnaliser les paramètres réseau et les montages de lecteur lorsque le conteneur démarre. ''

Arrêter le conteneur

Lorsque l'opération est terminée, arrêtez le conteneur. Normalement, dans ce cas, toutes les données du conteneur, y compris les journaux, etc. seront supprimées.

`Pour être précis, vous pouvez monter le système de fichiers lors de la création d'un conteneur. Ceci est une image de l'utilisation d'un lecteur réseau sous Windows. Lorsqu'elles sont montées de cette manière, les données restent à la source de montage même si le conteneur est arrêté. ''

Chaque problème et comment y faire face du point de vue du fonctionnement du système

Gestion de la bibliothèque

Si vous libérez la bibliothèque dans un conteneur, tous les fichiers disparaîtront lorsque le conteneur sera arrêté. La prochaine fois, 0 sera démarré à partir de l'état de DckerImage.

Il existe les types suivants

  1. Recréez l'image pour chaque version et réinstallez le programme.
  2. Montez la zone de fichiers contenant le dernier programme lors du démarrage du conteneur et démarrez-le.
  3. Relâchez le dernier programme dans le conteneur après avoir démarré le conteneur

J'ai énuméré plusieurs propositions, mais comme il n'y a pas beaucoup de mérite dans les deux dernières d'un point de vue opérationnel, j'adopterai 1. `Puisque 2 est pratique lors de l'utilisation individuelle de Docker au stade du développement, 2 est adopté par des individus. ''

Cependant, il est possible de se demander si la libération de l'environnement de développement vers l'environnement de production se fait en unités d'image ou en unités de programme individuelles.

  1. Créez une image dans l'environnement de développement et publiez l'image entière dans l'environnement de production
  2. Déplacez uniquement le programme de l'environnement de développement vers l'environnement de production et créez une image du côté de l'environnement de production

Quel est le meilleur? .. .. .. ..

Surveillance

Puisqu'il s'agit d'un Linux normal au démarrage, il peut être surveillé de la même manière que on-pres. Cependant, l'argument de vente est que plusieurs conteneurs peuvent être démarrés, il est donc nécessaire de réfléchir à la manière d'identifier et de surveiller les conteneurs individuels au moment du démarrage de n +. Si vous fixez toujours le nombre de bottes, l'avantage du conteneur diminuera, mais vous pouvez toujours le surveiller comme avant.

Lors du démarrage d'une variable de conteneur avec n +, le conteneur individuel est identifié en le liant au gestionnaire de surveillance avec un nom auto-déclaré. Il est nécessaire de concevoir une règle de dénomination pour le type de nom autodéclaré à utiliser.

Surveillance de la vie et de la mort

Il existe les types suivants

  1. Mettez un agent dans chaque conteneur et laissez l'agent sortir diverses informations pour la surveillance
  2. De nombreux logiciels de gestion de conteneurs sont disponibles, alors surveillez-les

S'il s'agit d'un environnement qui doit être pris en charge en parallèle avec l'environnement sur site, il semble qu'il sera compatible avec une combinaison des deux. S'il ne vaut que 1, les informations spécifiques au conteneur ne peuvent pas être obtenues, et s'il ne vaut que 2, il peut y avoir un manque d'informations d'acquisition sur site existantes.

Suivi de la performance

Il existe les types suivants

  1. Mettez un agent dans chaque conteneur et laissez l'agent sortir diverses informations pour la surveillance
  2. De nombreux logiciels de gestion de conteneurs sont disponibles, alors surveillez-les

S'il s'agit d'un environnement qui doit être pris en charge en parallèle avec l'environnement sur site, il semble qu'il sera compatible avec une combinaison des deux. S'il est seulement 1, les informations spécifiques au contenant ne peuvent pas être obtenues, et s'il est seulement 2, il peut y avoir un excès ou une insuffisance avec les informations d'acquisition d'empreinte existantes.

De plus, contrairement à la surveillance de la vie et de la mort, il est nécessaire de stocker des journaux. Lorsque le conteneur est arrêté, toutes les données seront perdues, donc Il est essentiel d'envoyer les données vers l'extérieur et de les stocker.

Surveillance de la sécurité

La sécurité normale est similaire au système d'exploitation Linux, donc surtout ici Décrit le journal de sécurité du système d'exploitation (journal de connexion / déconnexion).

Les bases sont les mêmes que jusqu'à présent. Comme il s'agit d'un Linux normal au démarrage, vous pouvez vérifier le journal de la même manière que on-pre. De même, lorsque le conteneur est arrêté, toutes les données seront perdues, il est donc essentiel d'envoyer les données vers l'extérieur et de les stocker.

Cependant, par mesure de précaution, s'il existe une faille de sécurité suspecte jusqu'à présent, Sur la base du journal de sécurité de base, vérifiez divers journaux dans le système d'exploitation Je pense avoir enquêté de manière approfondie, mais dans le cas d'un conteneur, explicitement en dehors du conteneur Si vous ne conservez pas les journaux, ils disparaîtront tous.

Gestion des sauvegardes

L'image correspond au fichier de sauvegarde.

Après cela, en plus du fichier image lui-même, j'ai utilisé pour créer le fichier image, Il sauvegarde également le code source de DockerFile et les fichiers utilisés lors du démarrage du conteneur (docker-compose.yml, etc.).

Opération de travail

Puisqu'il s'agit d'un Linux normal au démarrage, connectez-vous comme on-pre Des opérations telles que l'exécution de travaux sont possibles.

Mais dans quel conteneur s'insérera-t-il? Nous avons besoin d'un mécanisme pour prendre en charge l'état de démarrage et l'identification du conteneur afin que nous puissions déterminer.

Celles-ci sont dans la gamme prise en charge par les logiciels de gestion de conteneurs, mais cela semble difficile. Le développeur de l'application individuelle dit le travail xxx de mon application système, Il y a d'innombrables conteneurs devant le personnel d'exploitation, et il est difficile de déterminer lequel dit le personnel de l'application. De plus, le responsable de l'application ne sait pas comment fonctionnent les conteneurs autres que lui.

cette? Comment résolvez-vous cela? ?? ?? Une ou deux équipes de développement, c'est bien, mais avec des centaines de systèmes créés par des dizaines d'équipes de développement, Et si le nombre de conteneurs est de l'ordre de milliers? ?? Si les règles de dénomination lors du démarrage du conteneur ne sont pas correctes, il sera difficile à identifier. .. .. .. Une détection précoce des contrevenants est également nécessaire. .. .. .. ..

Choses qui doivent être confirmées sur la conception

Recommended Posts

Réétudier Docker du point de vue du fonctionnement du système
Créer un environnement d'exécution WAS à partir de Docker
Considérer la dénomination de code d'un point de vue littéraire
Mémo d'opération Docker
Comment obtenir un heapdump à partir d'un conteneur Docker
Comment déployer à partir d'une image Docker locale vers Heroku
[Note] Créez un environnement Java à partir de zéro avec docker
[Java] Fonctionnement du système de fichiers
Obtenez facilement des entiers à partir des propriétés système en Java
Jetez un œil à Kotlin dans une perspective Java efficace