# Usar Scout con diferentes tipos de artefactos


Algunos de los comandos de la CLI de Docker Scout admiten prefijos para especificar la ubicación o el tipo de artefacto que deseas analizar.

De forma predeterminada, el análisis de imágenes con el comando `docker scout cves` se dirige a las imágenes del almacenamiento de imágenes local de Docker Engine. El siguiente comando siempre utiliza una imagen local si esta existe:

```console
$ docker scout cves <image>
```

Si la imagen no existe localmente, Docker descarga la imagen antes de ejecutar el análisis. El análisis de la misma imagen nuevamente utilizará la misma versión local de forma predeterminada, incluso si la etiqueta ha cambiado desde entonces en el registro.

Al añadir el prefijo `registry://` a la referencia de la imagen, puedes forzar a Docker Scout a analizar la versión del registro de la imagen:

```console
$ docker scout cves registry://<image>
```

## Prefijos compatibles

Los prefijos compatibles son:

| Prefijo                     | Descripción                                                                       |
| --------------------------- | --------------------------------------------------------------------------------- |
| `image://` (predeterminado) | Utiliza una imagen local, o recurre a una búsqueda en el registro                 |
| `local://`                  | Utiliza una imagen del almacenamiento de imágenes local (no busca en el registro) |
| `registry://`               | Utiliza una imagen de un registro (no utiliza una imagen local)                   |
| `oci-dir://`                | Utiliza un directorio con diseño OCI                                              |
| `archive://`                | Utiliza un archivo tarball, como el creado por `docker save`                      |
| `fs://`                     | Utiliza un directorio o archivo local                                             |

Puedes utilizar prefijos con los siguientes comandos:

- `docker scout compare`
- `docker scout cves`
- `docker scout quickview`
- `docker scout recommendations`
- `docker scout sbom`

## Ejemplos

Esta sección contiene algunos ejemplos que muestran cómo puedes utilizar los prefijos para especificar artefactos en los comandos de `docker scout`.

### Analizar un proyecto local

El prefijo `fs://` te permite analizar el código fuente local directamente, sin tener que construirlo en una imagen de contenedor. El siguiente comando `docker scout quickview` te ofrece un resumen rápido de las vulnerabilidades del código fuente en el directorio de trabajo actual:

```console
$ docker scout quickview fs://.
```

Para ver los detalles de las vulnerabilidades encontradas en tu código fuente local, puedes utilizar el comando `docker scout cves --details fs://.`. Combínalo con otras banderas para limitar los resultados a los paquetes y vulnerabilidades que te interesen.

```console
$ docker scout cves --details --only-severity high fs://.
    ✓ File system read
    ✓ Indexed 323 packages
    ✗ Detected 1 vulnerable package with 1 vulnerability

​## Overview

                    │        Analyzed path
────────────────────┼──────────────────────────────
  Path              │  /Users/david/demo/scoutfs
    vulnerabilities │    0C     1H     0M     0L

​## Packages and Vulnerabilities

   0C     1H     0M     0L  fastify 3.29.0
pkg:npm/fastify@3.29.0

    ✗ HIGH CVE-2022-39288 [OWASP Top Ten 2017 Category A9 - Using Components with Known Vulnerabilities]
      https://scout.docker.com/v/CVE-2022-39288

      fastify is a fast and low overhead web framework, for Node.js. Affected versions of
      fastify are subject to a denial of service via malicious use of the Content-Type
      header. An attacker can send an invalid Content-Type header that can cause the
      application to crash. This issue has been addressed in commit  fbb07e8d  and will be
      included in release version 4.8.1. Users are advised to upgrade. Users unable to
      upgrade may manually filter out http content with malicious Content-Type headers.

      Affected range : <4.8.1
      Fixed version  : 4.8.1
      CVSS Score     : 7.5
      CVSS Vector    : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

1 vulnerability found in 1 package
  LOW       0
  MEDIUM    0
  HIGH      1
  CRITICAL  0
```

### Comparar un proyecto local con una imagen

Con `docker scout compare`, puedes comparar el análisis del código fuente de tu sistema de archivos local con el análisis de una imagen de contenedor. El siguiente ejemplo compara el código fuente local (`fs://.`) con una imagen de registro `registry://docker/scout-cli:latest`. En este caso, tanto el origen (baseline) como el objetivo (target) de la comparación utilizan prefijos.

```console
$ docker scout compare fs://. --to registry://docker/scout-cli:latest --ignore-unchanged
WARN 'docker scout compare' is experimental and its behaviour might change in the future
    ✓ File system read
    ✓ Indexed 268 packages
    ✓ SBOM of image already cached, 234 packages indexed


  ## Overview

                           │              Analyzed File System              │              Comparison Image
  ─────────────────────────┼────────────────────────────────────────────────┼─────────────────────────────────────────────
    Path / Image reference │  /Users/david/src/docker/scout-cli-plugin      │  docker/scout-cli:latest
                           │                                                │  bb0b01303584
      platform             │                                                │ linux/arm64
      provenance           │ https://github.com/dvdksn/scout-cli-plugin.git │ https://github.com/docker/scout-cli-plugin
                           │  6ea3f7369dbdfec101ac7c0fa9d78ef05ffa6315      │  67cb4ef78bd69545af0e223ba5fb577b27094505
      vulnerabilities      │    0C     0H     1M     1L                     │    0C     0H     1M     1L
                           │                                                │
      size                 │ 7.4 MB (-14 MB)                                │ 21 MB
      packages             │ 268 (+34)                                      │ 234
                           │                                                │


  ## Packages and Vulnerabilities


    +   55 packages added
    -   21 packages removed
       213 packages unchanged
```

El ejemplo anterior está truncado por brevedad.

### Ver el SBOM de un archivo tarball de imagen

El siguiente ejemplo muestra cómo puedes utilizar el prefijo `archive://` para obtener el SBOM de un archivo tarball de una imagen, creado con `docker save`. La imagen en este caso es `docker/scout-cli:latest`, y el SBOM se exporta al archivo `sbom.spdx.json` en formato SPDX.

```console
$ docker pull docker/scout-cli:latest
latest: Pulling from docker/scout-cli
257973a141f5: Download complete
1f2083724dd1: Download complete
5c8125a73507: Download complete
Digest: sha256:13318bb059b0f8b0b87b35ac7050782462b5d0ac3f96f9f23d165d8ed68d0894
$ docker save docker/scout-cli:latest -o scout-cli.tar
$ docker scout sbom --format spdx -o sbom.spdx.json archive://scout-cli.tar
```

## Obtener más información

Lee sobre los comandos y las banderas compatibles en la documentación de referencia de la CLI:

- [`docker scout quickview`](/reference/cli/docker/scout/quickview/)
- [`docker scout cves`](/reference/cli/docker/scout/cves/)
- [`docker scout compare`](/reference/cli/docker/scout/compare/)

