--- title: Docker virtualization description: Discovery uses the Docker Pattern to collect data about specific objects in a Docker engine, running on a Linux host. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/it-operations-management/itom-visibility/c-docker-virtualization.html release: australia product: ITOM Visibility classification: itom-visibility topic_type: concept last_updated: "2026-09-16" reading_time_minutes: 4 breadcrumb: [OS-level virtualization discovery, Data collected by ITOM Visibility, ITOM Visibility reference, ITOM Visibility, IT Operations Management] --- # Docker virtualization Discovery uses the **Docker Pattern** to collect data about specific objects in a Docker engine, running on a Linux host. The ServiceNow® platform supports the discovery of [Docker](https://www.docker.com/) release 1.11.0 or later. Discovery runs the Docker Engine process classifier in the network. If the classifier identifies the **dockerd** or **docker daemon** process, the classifier triggers the Horizontal Pattern \(HorizontalDiscoveryProbe\) probe, which launches the Docker Pattern and begins collecting data from Docker components. Starting with Discovery and Service Mapping Patterns version 1.31.0, you can choose to discover Docker image CIs only, without discovering Docker container CIs. Check your entitlements to determine whether you have access to 2026 Packaging SKU. For more information, see [Disable Docker container CI discovery](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/discovery/disable-docker-container-discovery.md). **Note:** For information on Probe to Pattern migration see the knowledge article [KB0694477](https://support.servicenow.com/kb_view.do?sysparm_article=KB0694477). ## Prerequisites - **User privileges** The user whose credentials are used to perform Docker Discovery must have privileges defined by one of these methods: - Provide a user with elevated rights for running commands, since the Docker daemon runs as the root user. The Docker pattern supports the use of [privileged commands](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/c_PrivilegedCommandsForMIDServer.md), such as **sudo** or **pbrun**, to run as the root user. - Assigned to a group named **docker**, which has special privileges for running Docker commands. For instructions on setting up a group, see documentation on [Docker](https://www.docker.com/). - **Latest patterns** Deploy the latest Discovery and Service Mapping Patterns application from ServiceNow Store. ## Docker restrictions and considerations When using Docker virtualization, consider the following: - The initial Discovery process scan can identify an application in a container and classify it correctly. However, subsequent probes launched to explore that application cannot see inside the container and cannot return details about the application. - Discovery scans all containers it finds, including inactive containers, which can slow down Discovery. You should delete containers that are not running. - Before setting *sn\_itom\_pattern.manifest\_digest\_image\_id* property to **true** and running discovery: prevent duplicate Docker records from being created by deleting all Docker image records. - Only one Docker engine is permitted per computer \(on either a physical or virtual machine\). ## Data collected by Discovery during horizontal discovery These attributes are discovered, in addition to the attributes derived from the parent OSLV tables.
Table and fields Description
Docker Engine \[cmdb\_ci\_docker\_engine\]
Name \[name\] Stores information about instances of the Docker engine.
OS Arch \[os\_arch\]
GIT Commit \[git\_commit\]
Build Date \[build\_date\]
Version \[version\]
API Version \[api\_version\]
Go Version \[go\_version\]
Is Clustered \[is\_clustered\]
Running Process \[running\_process\]
Running Process Command \[running\_process\_command\]
Running Process Key Parameters \[running\_process\_key\_parameters\]
Docker Image \[cmdb\_ci\_docker\_image\]
Name \[name\] Stores information on the globally unique representation of Docker images.
Image id \[image\_id\]
Image digest \[image\_digest\]
Size \(byte\) \[size\_byte\]
Image created \[Image\_created\_at\]
Docker Local Image \[cmdb\_ci\_docker\_local\_image\]
Name \[name\] Stores local instances of Docker images.
Image id \[image\_id\]
Docker Image Tag \[cmdb\_ci\_docker\_image\_tag\]
Name \[name\] Stores tags from local Docker images.
Image id \[image\_id\]
Repository \[repository\]
Tag \[tag\]
Docker Container \[cmdb\_ci\_docker\_container\]
Name \[name\] Stores Docker containers found on the host.In cases where duplicate records are created, deduplication tasks appear once discovery runs. For information on how to resolve these tasks, see the [Making docker container identifier independent \[KB1443042\]](https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1443042) article in the ServiceNow® Knowledge Base.
Image id \[image\_id\]
Container id \[container\_id\]
Size \(bytes\) \[size\_bytes\]
Command \[command\]
Container created \[container\_created\]
Status \[status\]
The **Collect Container Repository** extension section discovers this information. |Field|Description| |-----|-----------| |Name \[name\]|The name of the container repository.| |Field|Description| |-----|-----------| |Name \[name\]|The name of the container repository entry.| |Category \[category\]|The category of the container repository entry.| ## CI relationships The Docker Pattern identifies the following relationships between discovered CIs.
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 Manages::Managed By cmdb\_ci\_docker\_local\_image
cmdb\_ci\_docker\_image Instantiates::Instantiated By cmdb\_ci\_docker\_container
cmdb\_ci\_docker\_local\_image **Note:** The direction of this relation is the opposite for all store versions earlier than 1.0.99, February 2023. Instantiates::Instantiated By cmdb\_ci\_docker\_container
cmdb\_ci\_docker\_image\_tag Registered On::Has Registered cmdb\_ci\_docker\_local\_image
cmdb\_ci\_docker\_local\_image Instantiates::Instantiated By cmdb\_ci\_docker\_image
The **Collect Container Repository** extension section of the Docker Pattern identifies these relationships. |CI|Relationship|CI| |---|------------|---| |Docker Image \[cmdb\_ci\_docker\_image\]|Provisioned From::Provisioned|Container Repository Entry \[cmdb\_ci\_container\_repository\_entry\]| |Container Repository Entry \[cmdb\_ci\_container\_repository\_entry\]|Hosted on::Hosts|Container Repository \[cmdb\_ci\_container\_repository\]| ## Identification, containment, and hosting rules Discovery uses an application rule identifier to find the Docker engine and then applies other rules to identify specific Docker objects. - **Application rule identifier** 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 applies the relationships defined in the containment and hosting rules. It then creates and updates the individual Docker component CIs related to that engine. - **Identifiers** |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| - **Containment and hosting rules** Docker Discovery uses these [Create or edit a collection of containment rules](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/create-dependent-relationship.md) and [Create or edit a collection of hosting rules](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/create-dependent-relationship.md) rules to create configuration items \(CI\) from the data returned 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. |Parent|Child|Relationship| |------|-----|------------| |Docker Local Image|Docker Image Tag|Has registered| |Parent|Child|Relationship| |------|-----|------------| |Docker Container|Docker Engine|Managed by| |Docker Local Image|Docker Engine|Managed by| **Parent Topic:**[Operating system-level virtualization discovery](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/itom-visibility/c-oslv-discovery.md)