---
sourceDocument: Yokohama IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/yokohama/it-operations-management

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# Docker virtualization

# Docker virtualization {#ariaid-title1}

* Release version: Yokohama
* 
* Updated January 30, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 minutes to read

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://servicenow-prod.fluidtopics.net/XoHm99icj0c_aFRa6Yac5Q "Configure Docker discovery to collect image CIs only, instead of both image and container CIs.").{#c-docker-virtualization__check-entitlements-2026-container-packaging}  
Note:  
For information on Probe to Pattern migration see the knowledge article [KB0694477](https://support.servicenow.com/kb_view.do?sysparm_article=KB0694477).

## Prerequisites {#c-docker-virtualization__section_zvy_jcr_lrb}

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://www.servicenow.com/docs/access?context=c_PrivilegedCommandsForMIDServer&version=yokohama&pubname=yokohama-servicenow-platform&ft:locale=en-US), 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/).
    {#c-docker-virtualization__ul_xbp_wwt_nx}

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 <var class="keyword varname">sn_itom_pattern.manifest_digest_image_id</var> 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).
{#c-docker-virtualization__ul_hxx_pwt_nx}

## Data collected by Discovery during horizontal discovery {#c-docker-virtualization__section_h2w_mqy_1cb}

These attributes are discovered, in addition to the attributes derived from the parent OSLV tables.{#c-docker-virtualization__table_okd_kb2_5w__entry__2}

| Table and fields | Description |
|-|-|
| Docker Engine \[cmdb_ci_docker_engine\] ||
| Name \[name\] | Stores information about instances of the Docker engine. |
| OS Arch \[os_arch\] | Stores information about instances of the Docker engine. |
| GIT Commit \[git_commit\] | Stores information about instances of the Docker engine. |
| Build Date \[build_date\] | Stores information about instances of the Docker engine. |
| Version \[version\] | Stores information about instances of the Docker engine. |
| API Version \[api_version\] | Stores information about instances of the Docker engine. |
| Go Version \[go_version\] | Stores information about instances of the Docker engine. |
| Is Clustered \[is_clustered\] | Stores information about instances of the Docker engine. |
| Running Process \[running_process\] | Stores information about instances of the Docker engine. |
| Running Process Command \[running_process_command\] | Stores information about instances of the Docker engine. |
| Running Process Key Parameters \[running_process_key_parameters\] | Stores information about instances of the Docker engine. |
| Docker Image \[cmdb_ci_docker_image\] ||
| Name \[name\] | Stores information on the globally unique representation of Docker images. |
| Image id \[image_id\] | Stores information on the globally unique representation of Docker images. |
| Image digest \[image_digest\] | Stores information on the globally unique representation of Docker images. |
| Size (byte) \[size_byte\] | Stores information on the globally unique representation of Docker images. |
| Image created \[Image_created_at\] | Stores information on the globally unique representation of Docker images. |
| Docker Local Image \[cmdb_ci_docker_local_image\] ||
| Name \[name\] | Stores local instances of Docker images. |
| Image id \[image_id\] | Stores local instances of Docker images. |
| Docker Image Tag \[cmdb_ci_docker_image_tag\] ||
| Name \[name\] | Stores tags from local Docker images. |
| Image id \[image_id\] | Stores tags from local Docker images. |
| Repository \[repository\] | Stores tags from local Docker images. |
| Tag \[tag\] | Stores tags from local Docker images. |
| 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\] | 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. |
| Container id \[container_id\] | 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. |
| Size (bytes) \[size_bytes\] | 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. |
| Command \[command\] | 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. |
| Container created \[container_created\] | 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. |
| Status \[status\] | 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. |
[ ]

{#c-docker-virtualization__table_okd_kb2_5w}  
The Collect Container Repository extension section discovers this information. {#c-docker-virtualization__id_u5h_gx3_lrb__entry__2}

| Table and field | Description |
|-|-|
| Container Repository \[cmdb_ci_container_repository\] ||
| Name \[name\] | The name of the container repository. |
| Container Repository Entry \[cmdb_ci_container_repository_entry\] ||
| Name \[name\] | The name of the container repository entry. |
| Category \[category\] | The category of the container repository entry. |
[ ]

{#c-docker-virtualization__id_u5h_gx3_lrb}

## CI relationships {#c-docker-virtualization__section_yxh_5ty_lrb}

The Docker Pattern identifies the following relationships between discovered CIs.{#c-docker-virtualization__table_dqz_s5y_lrb__entry__3}

| 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 |
[ ]

{#c-docker-virtualization__table_dqz_s5y_lrb}  
The Collect Container Repository extension section of the Docker Pattern identifies these relationships.{#c-docker-virtualization__id_pdy_bw3_lrb__entry__3}

| 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\] |
[ ]

{#c-docker-virtualization__id_pdy_bw3_lrb}

## Identification, containment, and hosting rules {#c-docker-virtualization__section_ty2_mqy_1cb}

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 uses the relationships defined in the containment and hosting rules to accurately create and update the individual Docker component CIs related to that engine.

Identifiers
:   {#c-docker-virtualization__table_ndw_wn1_vw__entry__3}

    | 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 |
    [ ]

    {#c-docker-virtualization__table_ndw_wn1_vw}

Containment and hosting rules
:   Docker Discovery uses these [Create or edit a collection of containment
    rules](https://www.servicenow.com/docs/access?context=create-dependent-relationship&version=yokohama&pubname=yokohama-servicenow-platform&section=t_CreateContainmentSvcRuleMetadata&ft:locale=en-US) and [Create or edit a collection of hosting rules](https://www.servicenow.com/docs/access?context=create-dependent-relationship&version=yokohama&pubname=yokohama-servicenow-platform&section=t_CreateHostingServiceRuleMetadata&ft:locale=en-US) 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.{#c-docker-virtualization__table_qqm_xsz_bx__entry__3}

    | Parent | Child | Relationship |
    |-|-|-|
    | Docker Local Image | Docker Image Tag | Has registered |
    [Table 1. Containment rule]

    {#c-docker-virtualization__table_qqm_xsz_bx}

    {#c-docker-virtualization__table_em1_kqz_bx__entry__3}

    | Parent | Child | Relationship |
    |-|-|-|
    | Docker Container | Docker Engine | Managed by |
    | Docker Local Image | Docker Engine | Managed by |
    [Table 2. Hosting rules]

    {#c-docker-virtualization__table_em1_kqz_bx}

