Analice una referencia Docker: registro, repositorio, etiqueta o digest
Pegue una referencia de imagen Docker y obtenga sus partes relevantes como JSON estructurado.
Ejecutar — gratis
El analizador separa un registro explícito, incluido un puerto opcional, de la ruta del repositorio y de una etiqueta o un digest de contenido opcionales. Reconoce por qué los dos puntos de registry.example.com:5000 no delimitan una etiqueta y por qué los que siguen al nombre de una imagen sí lo hacen. Las referencias incorrectas generan un error claro, no campos parciales engañosos. No se consulta ningún registro ni se inventan valores omitidos como Docker Hub o latest.
Separe cada parte sin adivinar valores predeterminados ocultos
Una referencia de imagen Docker puede ser tan breve como alpine o tan detallada como registry.example.com:5000/platform/api:2026.07. A simple vista, tanto el puerto del registro como la etiqueta de la imagen utilizan dos puntos, por lo que dividir el texto solo por signos de puntuación produce resultados incorrectos. Este analizador aísla primero el digest y después examina únicamente el último segmento de la ruta para encontrar una etiqueta. Considera que el primer componente separado por una barra es un registro explícito cuando se trata de localhost, contiene un punto, incluye los dos puntos de un puerto o es una dirección IPv6 entre corchetes. Todo lo que sigue a ese componente forma la ruta del repositorio. La salida conserva exclusivamente lo que declara la entrada. Para alpine, el repositorio es alpine y no aparecen campos de registro ni etiqueta. El analizador no sustituye docker.io, no añade el espacio de nombres habitual library ni supone latest. Así, el resultado sirve para analizar configuraciones, aplicar políticas y preparar migraciones donde un valor explícito debe distinguirse de un valor predeterminado del cliente.
Procese correctamente etiquetas, digests, puertos y rutas
Las etiquetas y los digests identifican imágenes de maneras diferentes. Una etiqueta es un nombre móvil como stable, 1.4.2 o release_candidate, mientras que un digest es un identificador basado en el contenido, escrito tras una arroba como algoritmo y valor. El analizador devuelve ambos conceptos en campos independientes y también admite una referencia que contenga los dos, porque las herramientas Docker pueden utilizar un nombre con etiqueta y restringirlo mediante un digest. Las rutas de repositorio pueden incluir varios componentes en minúsculas con los separadores permitidos por las reglas habituales de nombres Docker. Los hosts de registro se validan por separado, incluidos los puertos numéricos del 1 al 65535 y las formas IPv6 en minúsculas entre corchetes. Los algoritmos y valores de digest deben respetar su sintaxis, y el valor debe tener longitud suficiente. No se intenta resolver una etiqueta, comprobar la existencia de un digest ni verificar permisos de descarga. Es únicamente un análisis sintáctico, por lo que el resultado es determinista, privado y no requiere acceso a la red.
Rechace entradas ambiguas antes de automatizarlas
Un analizador demasiado permisivo puede resultar peligroso en la automatización de despliegues, porque un error tipográfico puede señalar una imagen distinta de la prevista. Esta capacidad rechaza valores vacíos, espacios al principio, al final o en medio, esquemas de URL, separadores de digest repetidos, segmentos de ruta vacíos, etiquetas incorrectas, puertos de registro no válidos, nombres de repositorio con mayúsculas y expresiones de digest defectuosas. También limita la longitud de la referencia completa y del repositorio para mantener acotado el trabajo. La validación devuelve un único error claro de entrada no válida, en lugar de un objeto parcial que podría parecer fiable. Utilice este comportamiento en el límite de una tarea de CI, un editor de manifiestos, un importador de inventario de imágenes o un auxiliar de políticas de admisión. Un resultado válido puede encaminarse según contenga registro, etiqueta o digest; un resultado inválido detiene el flujo cuanto antes. La sintaxis válida no garantiza que el repositorio o la imagen existan: comprobarlo exige acceso y autenticación ante el registro. La ejecución en navegador es local y la API cuesta $0.002 por referencia.
Qué puede hacer con ella
Validar una configuración de despliegue
Rechace referencias de imagen incorrectas antes de que un manifiesto llegue a la compilación, el despliegue o el control de admisión.
Crear un inventario de imágenes
Separe registros, rutas de repositorio, etiquetas y digests inmutables para informes o migraciones sin consultar registros.
Aplicar políticas de nombres de imagen
Compruebe si una referencia utiliza un registro aprobado, un digest obligatorio o una etiqueta mutable prohibida.
Preguntas frecuentes
¿El analizador añade docker.io o library automáticamente?
No. Solo informa de los componentes explícitos, por lo que un registro omitido sigue omitido y el repositorio se conserva tal como fue escrito.
¿Una imagen sin etiqueta recibe la etiqueta latest?
No. El campo de etiqueta se omite cuando la entrada no la incluye. Los valores predeterminados del cliente Docker no forman parte del texto analizado.
¿Puede una referencia contener una etiqueta y un digest?
Sí. Cuando ambos aparecen con una sintaxis válida, el resultado incluye los dos campos sin descartar ninguno de los calificadores.
¿Se aceptan mayúsculas en los nombres de repositorio?
No. Los componentes del repositorio Docker deben escribirse en minúsculas. Las etiquetas admiten mayúsculas porque emplean una sintaxis diferente.
¿Se comprueba que la imagen exista?
No. Solo se valida y divide la sintaxis. No se consulta ningún registro ni se realizan autenticación, descarga o solicitudes de red.
¿Cuánto cuesta utilizar la API?
El precio base es $0.002 por referencia. La versión del navegador se ejecuta localmente sin enviar la referencia a ningún registro.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev2/docker-tag-parse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"registry.example.com:5000/team/service:2026.07"}'const res = await fetch("https://api.kit.forhosting.com/dev2/docker-tag-parse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "registry.example.com:5000/team/service:2026.07"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/docker-tag-parse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "registry.example.com:5000/team/service:2026.07"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/docker-tag-parse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"registry.example.com:5000/team/service:2026.07"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"registry.example.com:5000/team/service:2026.07"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/docker-tag-parse", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "registry.example.com:5000/team/service:2026.07"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.docker_tag_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |