Analizzi un riferimento Docker: registro, repository, tag o digest
Incolli un riferimento immagine Docker per riceverne le parti significative come JSON strutturato.
Esegui gratis nel browser
Il parser separa un registro esplicito, compresa un’eventuale porta, dal percorso del repository e da un tag o digest del contenuto facoltativo. Distingue i due punti di registry.example.com:5000, che appartengono alla porta, da quelli dopo il nome di un’immagine, che introducono un tag. I riferimenti non validi generano un errore chiaro, non campi parziali fuorvianti. Non viene contattato alcun registro e non vengono inventati valori predefiniti omessi come Docker Hub o latest.
Separi ogni parte senza ipotizzare valori predefiniti nascosti
Un riferimento immagine Docker può essere breve come alpine oppure dettagliato come registry.example.com:5000/platform/api:2026.07. A prima vista, sia la porta del registro sia il tag dell’immagine utilizzano i due punti, quindi una semplice divisione in base alla punteggiatura produce risultati errati. Questo parser isola innanzitutto il digest, poi esamina soltanto l’ultimo segmento del percorso per individuare un tag. Riconosce il primo componente delimitato da una barra come registro esplicito se equivale a localhost, contiene un punto, include i due punti di una porta o è un indirizzo IPv6 racchiuso tra parentesi quadre. Tutti i componenti successivi formano il percorso del repository. L’output conserva esclusivamente ciò che l’input dichiara. Per alpine, il repository è alpine e non sono presenti campi per registro o tag. Il parser non sostituisce docker.io, non aggiunge il namespace convenzionale library e non presume latest. Il risultato è quindi adatto ad analisi di configurazione, controlli delle policy e strumenti di migrazione nei quali un valore esplicito deve rimanere distinguibile da un’impostazione predefinita del client.
Gestisca correttamente tag, digest, porte e percorsi
Tag e digest identificano le immagini in modi differenti. Un tag è un’etichetta modificabile come stable, 1.4.2 o release_candidate, mentre un digest è un identificatore basato sul contenuto, scritto dopo una chiocciola come algoritmo e valore. Il parser restituisce questi dati in campi separati e accetta anche un riferimento che li contenga entrambi, perché gli strumenti Docker possono qualificare con un digest un nome già provvisto di tag. I percorsi dei repository possono comprendere più componenti minuscoli, con i separatori ammessi dalle consuete regole di denominazione Docker. Gli host dei registri vengono convalidati separatamente, incluse le porte numeriche da 1 a 65535 e le forme IPv6 minuscole tra parentesi quadre. Algoritmi e valori dei digest devono rispettare la rispettiva sintassi, mentre il valore deve avere una lunghezza significativa. Il parser non tenta di risolvere un tag, verificare l’esistenza di un digest o controllare se le credenziali consentono il download. Si tratta unicamente di analisi sintattica, quindi i risultati restano deterministici, privati e disponibili senza accesso alla rete.
Rifiuti input ambigui prima di automatizzarli
Un parser troppo permissivo può essere rischioso nell’automazione dei deployment, perché un refuso potrebbe indicare un’immagine diversa da quella prevista. Questa capacità rifiuta valori vuoti, spazi iniziali, finali o interni, schemi URL, separatori di digest ripetuti, segmenti di percorso vuoti, tag non validi, porte di registro errate, nomi di repository con maiuscole ed espressioni digest malformate. Limita inoltre la lunghezza dell’intero riferimento e del repository, così il lavoro rimane circoscritto. La convalida restituisce un unico errore chiaro di input non valido, anziché un oggetto parziale che potrebbe sembrare affidabile. Utilizzi questo comportamento all’ingresso di un processo CI, un editor di manifesti, un importatore di inventari di immagini o un ausilio per policy di ammissione. Un risultato valido può essere instradato in base alla presenza di registro, tag o digest; un valore non valido interrompe subito il flusso. Una sintassi valida non garantisce che il repository o l’immagine esistano: tale controllo richiede accesso e autenticazione al registro, volutamente esclusi da questo strumento. L’esecuzione nel browser è locale e l’API costa $0.002 per riferimento.
Casi d'uso
Convalidare una configurazione di deployment
Rifiuti riferimenti immagine non validi prima che un manifesto raggiunga compilazione, deployment o controllo di ammissione.
Creare un inventario delle immagini
Separi registri, percorsi dei repository, tag e digest immutabili per report o migrazioni senza contattare registri.
Applicare una policy sui nomi delle immagini
Controlli se un riferimento usa un registro approvato, un digest obbligatorio o un tag modificabile vietato.
Domande frequenti
Il parser aggiunge automaticamente docker.io o library?
No. Riporta soltanto i componenti espliciti, quindi un registro omesso rimane assente e il repository viene conservato come scritto.
Un’immagine senza tag riceve il tag latest?
No. Il campo del tag viene omesso quando l’input non ne contiene uno. I valori predefiniti del client Docker non fanno parte del testo analizzato.
Un riferimento può contenere sia un tag sia un digest?
Sì. Quando entrambi sono presenti con una sintassi valida, il risultato include i due campi senza eliminare nessuno dei qualificatori.
I nomi dei repository possono contenere maiuscole?
No. I componenti di un repository Docker devono essere minuscoli. I tag possono contenere maiuscole perché la loro sintassi è diversa.
Il parser verifica se l’immagine esiste?
No. Convalida e suddivide esclusivamente la sintassi. Non esegue consultazioni del registro, autenticazione, download o richieste di rete.
Quanto costa utilizzare l’API?
Il prezzo base è $0.002 per riferimento. La versione nel browser viene eseguita localmente senza inviare il riferimento a un registro.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"text": "registry.example.com:5000/team/service:2026.07"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.docker_tag_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |