Virtualisation Docker

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 5 minutes de lecture
  • Découverte utilise le Docker Pattern pour collecter des données sur des objets spécifiques dans un moteur Docker s'exécutant sur un hôte Linux.

    La plateforme ServiceNow® prend en charge la détection des versions Docker 1.11.0 ou ultérieures.

    Découverte exécute le classifieur de processus Moteur Docker dans le réseau. Si le classifieur identifie le processus dockerd ou docker daemon, il déclenche la sonde Modèle horizontal (HorizontalDiscoveryProbe), qui lance le modèle Docker et commence à collecter les données des composants Docker.
    Remarque :
    Pour plus d’informations sur la migration de la sonde au modèle, consultez l’article de la base de connaissances KB0694477.

    Prérequis

    Privilèges d'utilisateur
    L'utilisateur dont les informations d'identification sont utilisées pour exécuter Docker Découverte doit disposer de privilèges définis par l'une des méthodes suivantes :
    • Fournissez à un utilisateur des droits élevés pour l'exécution des commandes, car le démon Docker s'exécute en tant qu'utilisateur racine. Le modèle Docker prend en charge l’utilisation de commandes privilégiées, telles que sudo ou pbrun, à exécuter en tant qu’utilisateur racine.
    • Affecté à un groupe nommé docker, qui dispose de privilèges spéciaux pour l'exécution des commandes Docker. Pour obtenir des instructions sur la configuration d'un groupe, consultez la documentation concernant le Docker.
    Derniers modèles
    Déployez la dernière application Discovery and Service Mapping Patterns à partir de ServiceNow Store.

    Restrictions et considérations à propos de Docker

    Lorsque vous utilisez la virtualisation Docker, prenez en compte les éléments suivants :
    • L'analyse initiale du processus Découverte peut identifier une application dans un conteneur et la classifier correctement. Toutefois, les sondes suivantes lancées pour explorer cette application ne peuvent pas voir à l'intérieur du conteneur et ne peuvent pas renvoyer de détails sur l'application.
    • Découverte analyse tous les conteneurs qu'il trouve, y compris les conteneurs inactifs, ce qui peut ralentir Découverte. Vous devez supprimer les conteneurs qui ne sont pas en cours d'exécution.
    • Avant de définir la propriété sn_itom_pattern.manifest_digest_image_id sur vrai et d’exécuter la découverte : Empêchez la création d’enregistrements en double Docker en supprimant tous les Docker enregistrements d’images.
    • Un seul moteur Docker est autorisé par ordinateur (sur un ordinateur physique ou virtuel).

    Données collectées par Découverte lors d'une détection horizontale

    Ces attributs sont détectés, en plus des attributs dérivés des tables OSLV parentes.
    Table et champs Description
    Moteur Docker [cmdb_ci_docker_engine]
    Nom [name] Stocke des informations sur les instances du moteur Docker.
    Architecture du système d’exploitation [os_arch]
    Validation GIT [git_commit]
    Date de version [build_date]
    Version [version]
    Version de l’API [api_version]
    Version de Go [go_version]
    Est en grappe [is_clustered]
    Processus en cours [running_process]
    Commande du processus en cours [running_process_command]
    Paramètres clés du processus en cours [running_process_key_parameters]
    Image de Docker [cmdb_ci_docker_image]
    Nom [name] Stocke des informations sur la représentation globale unique des images de Docker.
    ID de l'image [image_id]
    Synthèse de l'image [image_digest]
    Taille (octet) [size_byte]
    Création de l’image [Image_created_at]
    Image locale de Docker [cmdb_ci_docker_local_image]
    Nom [name] Stocke les instances locales d'images de Docker.
    ID de l'image [image_id]
    Balise de l'image de Docker [cmdb_ci_docker_image_tag]
    Nom [name] Stocke les balises des images locales de Docker.
    ID de l'image [image_id]
    Référentiel [repository]
    Balise [tag]
    Conteneur Docker [cmdb_ci_docker_container]
    Nom [name] Stocke les conteneurs Docker trouvés sur l'hôte.

    Dans les cas où des enregistrements en double sont créés, les tâches de déduplication s’affichent une fois Découverte exécutée. Pour plus d’informations sur la résolution de ces tâches, consultez l’article Rendre l’identificateur de conteneur Docker indépendant [KB1443042] dans la section ServiceNow® Base de connaissances.

    ID de l'image [image_id]
    ID du conteneur [container_id]
    Taille (octets) [size_bytes]
    Commande [command]
    Création du conteneur [container_created]
    Statut [status]
    La section d'extension Collect Container Repository détecte les informations suivantes.
    Table et champ Description
    Référentiel du conteneur [cmdb_ci_container_repository]
    Nom [name] Le nom du référentiel de conteneur.
    Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry]
    Nom [name] Le nom de l'entrée du référentiel du conteneur.
    Catégorie [category] Catégorie de l'entrée du référentiel du conteneur.

    Relations CI

    Le modèle Docker identifie les relations suivantes entre les CI détectés.
    CI Relation CI
    cmdb_ci_server Runs::Runs On cmdb_ci_docker_engine
    cmdb_ci_docker_engine Manages::Managed By cmdb_ci_docker_container
    cmdb_ci_docker_engine Gère ::Géré par cmdb_ci_docker_local_image

    cmdb_ci_docker_image

    Instanciations ::Instanciées par

    cmdb_ci_docker_container

    cmdb_ci_docker_local_image

    Remarque :
    Le sens de cette relation est inverse pour toutes les versions de magasin antérieures à la version 1.0.99, février 2023.

    Instanciations ::Instanciées par

    cmdb_ci_docker_container

    cmdb_ci_docker_image_tag Inscrit le ::S’est inscrit cmdb_ci_docker_local_image
    cmdb_ci_docker_local_image Instantiates::Instantiated By cmdb_ci_docker_image
    La section d'extension Collect Container Repository du modèle Docker identifie les relations suivantes.
    CI Relation CI
    Image de Docker [cmdb_ci_docker_image] Mis en service à partir de::Mis en service Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry]
    Entrée du référentiel du conteneur [cmdb_ci_container_repository_entry] Hébergé sur::Hôtes Référentiel du conteneur [cmdb_ci_container_repository]

    Règles d'identification, d'imbrication et d'hébergement

    Discovery utilise un identificateur de règle d'application pour trouver le moteur Docker, puis applique d'autres règles pour identifier des objets Docker spécifiques.

    Identificateur de règle d'application

    Le système crée l'élément de configuration (CI) cmdb_ci_docker_engine pendant la classification du processus. Sur cette base, Discovery utilise l'identificateur de règle d'application sur la table Application [cmdb_ci_appl] pour identifier le moteur Docker particulier rencontré. Après avoir établi cette identité, Discovery utilise les relations définies dans les règles d'imbrication et d'hébergement pour créer et mettre à jour avec précision les CI de composant Docker individuels associés à ce moteur.

    Identificateurs
    Nom Table Attributs
    Conteneur Docker Conteneur Docker [cmdb_ci_docker_container] container_id
    Image globale de Docker Image de Docker [cmdb_ci_docker_image] image_id
    Image locale de Docker Image locale de Docker [cmdb_ci_docker_local_image] image_id
    Balise de l'image de Docker Balise de l'image de Docker [cmdb_ci_docker_image_tag] référentiel, balise
    Règles d'imbrication et d'hébergement
    Découverte sur Docker utilise ces éléments Créer ou modifier une collection de règles d’imbrication et Créer ou modifier une collection de règles d’hébergement pour créer des éléments de configuration (CI) à partir des données traitéespar le modèle Docker. Une fois que Discovery a identifié le moteur Docker par sa relation avec la table Application [cmdb_ci_appl], il utilise ces règles pour identifier les CI spécifiques liés à ce moteur à partir de leurs relations les unes avec les autres. En connectant les composants les uns aux autres de cette manière, depuis l'application vers le bas, à partir du moteur, Découverte évite de créer des CI en double pour les composants d'autres moteurs Docker qui utilisent le même nom ou attribut image_id.
    Tableau 1. Règle d'imbrication
    Parent Enfant Relation
    Image locale de Docker Balise de l'image de Docker Est inscrit
    Tableau 2. Règles d'hébergement
    Parent Enfant Relation
    Conteneur Docker Moteur de Docker Géré par
    Image locale de Docker Moteur de Docker Géré par