Docker 가상화

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 7분
  • 디스커버리Docker Pattern을 사용하여 Linux 호스트에서 실행하는 Docker 엔진의 특정 객체에 대한 데이터를 수집합니다.

    ServiceNow® 플랫폼은 Docker 릴리스 1.11.0 이후의 검색을 지원합니다.

    디스커버리는 네트워크에서 Docker 엔진 프로세스 분류 규칙을 실행합니다. 분류 규칙에서 도커 또는 도커 디먼 프로세스를 식별하는 경우 분류 규칙은 수평 패턴(HorizontalDiscoveryProbe) 프로브를 트리거하여 Docker 패턴을 시작하고 Docker 구성요소에서 데이터 수집을 시작합니다.
    주:
    프로브에서 패턴으로의 마이그레이션에 대한 자세한 내용은 지식 문서 KB0694477 참조하십시오.

    필요 조건

    사용자 권한
    Docker 디스커버리를 수행할 때 사용되는 자격 증명이 있는 사용자는 다음 중 한 방법으로 정의된 권한이 있어야 합니다.
    • Docker 디먼이 루트 사용자로 실행되므로 명령 실행을 위한 높은 권한을 사용자에게 제공합니다. Docker 패턴은 루트 사용자로 실행할 sudo 또는 pbrun과 같은 권한 있는 명령 사용을 지원합니다.
    • Docker 명령 실행에 대한 특별한 권한이 있는 docker라는 그룹에 할당됩니다. 그룹 설정에 대한 방법은 Docker 설명서를 참조하십시오.
    최신 패턴
    ServiceNow Store에서 검색 및 서비스 매핑 패턴 애플리케이션을 배포합니다.

    Docker 제한 및 고려 사항

    Docker 가상화를 사용하는 경우 다음 사항을 고려하십시오.
    • 초기 디스커버리 프로세스 검사는 컨테이너에서 애플리케이션을 식별하고 올바르게 분류할 수 있습니다. 그러나 해당 애플리케이션을 탐색하기 위해 실행된 후속 프로브는 컨테이너 내부를 볼 수 없으며 애플리케이션에 대한 상세 정보를 반환할 수 없습니다.
    • 디스커버리에서 비활성 컨테이너를 포함하여 찾은 모든 컨테이너를 검사하므로 디스커버리 속도가 느려질 수 있습니다. 실행하지 않는 컨테이너는 삭제해야 합니다.
    • sn_itom_pattern.manifest_digest_image_id 속성을 true로 설정하고 검색을 실행하기 전에 모든 Docker 이미지 기록을 삭제하여 중복 Docker 기록이 생성되지 않도록 합니다.
    • 실제 또는 가상 컴퓨터에서 컴퓨터당 하나의 Docker 엔진만 허용됩니다.

    가로 검색 중 디스커버리에서 수집하는 데이터

    다음 속성은 상위 OSLV 테이블에서 파생된 속성과 함께 검색됩니다.
    테이블 및 필드 설명
    Docker 엔진 [cmdb_ci_docker_engine]
    이름 [name] Docker 엔진의 인스턴스에 관한 정보를 저장합니다.
    OS Arch [os_arch]
    GIT 커밋 [git_commit]
    빌드 날짜 [build_date]
    버전 [version]
    API 버전 [api_version]
    Go 버전 [go_version]
    클러스터됨 [is_clustered]
    실행 중인 프로세스 [running_process]
    실행 중인 프로세스 명령 [running_process_command]
    실행 중인 프로세스 키 매개변수 [running_process_key_parameters]
    Docker 이미지 [cmdb_ci_docker_image]
    이름 [name] Docker 이미지의 전체적인 고유 표현에 관한 정보를 저장합니다.
    이미지 ID [image_id]
    이미지 다이제스트[image_digest]
    크기(바이트) [size_byte]
    생성된 이미지 [image_created_at]
    Docker 로컬 이미지 [cmdb_ci_docker_local_image]
    이름 [name] Docker 이미지의 로컬 인스턴스를 저장합니다.
    이미지 ID [image_id]
    Docker 이미지 태그 [cmdb_ci_docker_image_tag]
    이름 [name] 로컬 Docker 이미지에서 태그를 저장합니다.
    이미지 ID [image_id]
    리포지토리 [repository]
    태그 [tag]
    Docker 컨테이너 [cmdb_ci_docker_container]
    이름 [name] 호스트에서 찾은 Docker 컨테이너를 저장합니다.

    중복 기록이 생성되는 경우 검색이 실행되면 중복 제거 작업이 나타납니다. 이러한 작업을 해결하는 방법에 대한 자세한 내용은 ServiceNow® 지식베이스독립적인 Docker 컨테이너 식별자 만들기 [KB1443042] 문서를 참조하십시오.

    이미지 ID [image_id]
    컨테이너 ID [container_id]
    크기(바이트) [size_bytes]
    명령 [command]
    생성된 컨테이너 [container_created]
    상태 [status]
    Collect Container Repository 확장 섹션에서 이 정보를 검색합니다.
    테이블 및 필드 설명
    컨테이너 리포지토리 [cmdb_ci_container_repository]
    이름 [name] 컨테이너 리포지토리의 이름입니다.
    컨테이너 리포지토리 항목 [cmdb_ci_container_repository_entry]
    이름 [name] 컨테이너 리포지토리 항목의 이름입니다.
    범주 [category] 컨테이너 리포지토리 항목의 범주입니다.

    CI 관계

    Docker Pattern은 검색된 CI 간에 다음과 같은 관계를 식별합니다.
    CI 관계 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

    주:
    이 관계 방향은 1.0.99, 2023년 2월 이전의 모든 스토어 버전에서 반대입니다.

    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
    Docker 패턴의 Collect Container Repository 확장 섹션은 이러한 관계를 식별합니다.
    CI 관계 CI
    Docker 이미지 [cmdb_ci_docker_image] Provisioned From::Provisioned 컨테이너 리포지토리 항목 [cmdb_ci_container_repository_entry]
    컨테이너 리포지토리 항목 [cmdb_ci_container_repository_entry] Hosted on::Hosts 컨테이너 리포지토리 [cmdb_ci_container_repository]

    식별, 통제 및 호스팅 규칙

    검색은 애플리케이션 규칙 식별자를 사용하여 Docker 엔진을 찾은 다음 특정 Docker 객체를 식별하는 다른 규칙을 적용합니다.

    애플리케이션 규칙 식별자

    프로세스 분류 과정에서 cmdb_ci_docker_engine CI(구성 항목)가 생성됩니다. 검색은 이에 따라 애플리케이션 [cmdb_ci_appl] 테이블에서 애플리케이션 규칙 식별자를 사용하여 발생한 특정 Docker 엔진을 식별합니다. 이 식별을 설정한 후 통제 및 호스팅 규칙에서 정의한 관계를 사용하여 해당 엔진과 관련된 개별 Docker 구성요소 CI를 정확하게 생성하고 업데이트합니다.

    식별자
    이름 테이블 속성
    Docker 컨테이너 Docker 컨테이너 [cmdb_ci_docker_container] container_id
    Docker 전체 이미지 Docker 이미지 [cmdb_ci_docker_image] image_id
    Docker 로컬 이미지 Docker 로컬 이미지 [cmdb_ci_docker_local_image] image_id
    Docker 이미지 태그 Docker 이미지 태그 [cmdb_ci_docker_image_tag] repository, tag
    통제 및 호스팅 규칙
    Docker 검색은 이러한 격리 규칙 컬렉션 생성 또는 편집호스팅 규칙 컬렉션 생성 또는 편집 규칙을 사용하여 Docker 패턴에 의해 반환된 데이터에서 CI(구성 항목)를 생성합니다. 검색에서 애플리케이션 [cmdb_ci_appl] 테이블과의 관계에 따라 Docker 엔진을 식별한 후 다음 규칙을 사용하여 해당 엔진에 연결된 특정 CI를 상호 관계에서 식별합니다. 엔진을 시작으로 애플리케이션에서 이러한 방식으로 구성요소를 서로 연결함으로 디스커버리는 동일한 이름 또는 이미지_id를 사용하는 다른 Docker 엔진의 구성요소에 대한 중복 CI를 생성하지 않습니다.
    표 1. 통제 규칙
    상위 하위 관계
    Docker 로컬 이미지 Docker 이미지 태그 Has registered
    표 2. 호스팅 규칙
    상위 하위 관계
    Docker 컨테이너 Docker 엔진 Managed by
    Docker 로컬 이미지 Docker 엔진 Managed by