Docker rules

Discovery uses an existing application rule to identify the Docker engine and then applies other rules to identify specific Docker objects.

How Discovery identifies the Docker engine

The system creates the cmdb_ci_docker_engine configuration item (CI) during process classification. Based on this, Discovery uses the Application Rule identifier, on the Application [cmdb_ci_appl] table to identify the particular Docker engine encountered. After establishing this identity, Discovery uses the relationships defined in the containment and hosting rules to accurately create and update the individual Docker component CIs related to that engine.

Docker identification rules

Discovery installs these identifiers for Docker objects:
Name Table Attributes
Docker Container Docker Container [cmdb_ci_docker_container] container_id
Docker Global Image Docker Image [cmdb_ci_docker_image] image_id
Docker Local Image Docker Local Image [cmdb_ci_docker_local_image] image_id
Docker Image Tag Docker Image Tag [cmdb_ci_docker_image_tag] repository, tag

Setting containment and hosting relationships

Docker Discovery uses these containment and hosting rules to create configuration items (CI) from the data retured by the Docker Pattern. After Discovery identifies the Docker engine by its relationship to the Application [cmdb_ci_appl] table, it uses these rules to identify the specific CIs connected to that engine from their relationships to one another. By connecting the components to one another in this fashion, from the application down, starting with the engine, Discovery avoids creating duplicate CIs for components from other Docker engines that use the same name or image_id.
Table 1. Containment rule
Parent Child Relationship
Docker Local Image Docker Image Tag Has registered
Table 2. Hosting rules
Parent Child Relationship
Docker Container Docker Engine Managed by
Docker Local Image Docker Engine Managed by