Analysez une référence Docker : registre, dépôt, tag ou digest
Collez une référence d’image Docker pour obtenir ses éléments utiles sous forme de JSON structuré.
Lancer gratuitement
L’analyseur sépare un registre explicite, avec son éventuel port, du chemin du dépôt et d’un tag ou digest de contenu facultatif. Il sait pourquoi le deux-points de registry.example.com:5000 ne délimite pas un tag, contrairement à celui qui suit le nom d’une image. Une référence incorrecte produit une erreur claire, jamais des champs partiels trompeurs. Aucun registre n’est contacté et les valeurs omises, comme Docker Hub ou latest, ne sont pas inventées.
Isolez chaque élément sans deviner de valeur implicite
Une référence d’image Docker peut être aussi courte que alpine ou aussi détaillée que registry.example.com:5000/platform/api:2026.07. À première vue, le port du registre et le tag de l’image utilisent tous deux un deux-points ; un simple découpage selon la ponctuation fournit donc un résultat erroné. Cet analyseur commence par isoler le digest, puis recherche un tag uniquement dans le dernier segment du chemin. Il considère le premier composant délimité par une barre oblique comme un registre explicite si celui-ci vaut localhost, contient un point, comporte le deux-points d’un port ou correspond à une adresse IPv6 entre crochets. Tous les composants suivants constituent le chemin du dépôt. La sortie conserve exclusivement les informations réellement présentes. Pour alpine, le dépôt est alpine et aucun champ de registre ou de tag n’apparaît. L’outil ne remplace pas le registre par docker.io, n’ajoute pas l’espace de noms conventionnel library et ne suppose pas latest. Le résultat convient ainsi aux audits de configuration, aux contrôles de règles et aux migrations qui doivent distinguer une valeur explicite d’une valeur par défaut du client.
Traitez correctement tags, digests, ports et chemins
Les tags et les digests identifient les images de deux façons distinctes. Un tag est une étiquette modifiable telle que stable, 1.4.2 ou release_candidate, tandis qu’un digest est un identifiant lié au contenu, écrit après une arobase sous la forme d’un algorithme et d’une valeur. L’analyseur les renvoie dans des champs séparés et accepte également une référence qui contient les deux, car les outils Docker peuvent qualifier par un digest un nom déjà muni d’un tag. Les chemins de dépôt peuvent comprendre plusieurs composants en minuscules et les séparateurs admis par les règles usuelles de nommage Docker. Les hôtes de registre font l’objet d’une validation distincte, y compris les ports numériques de 1 à 65535 et les formes IPv6 minuscules entre crochets. L’algorithme et la valeur du digest doivent respecter leur propre syntaxe, et la valeur doit être suffisamment longue. L’outil ne résout aucun tag, ne vérifie pas l’existence d’un digest et ne contrôle pas les droits de téléchargement. Cette analyse strictement syntaxique reste donc déterministe, confidentielle et indépendante du réseau.
Refusez les entrées ambiguës avant toute automatisation
Un analyseur trop permissif présente un risque dans une chaîne de déploiement, car une faute de frappe peut désigner une autre image que celle prévue. Cette capacité refuse les valeurs vides, les espaces initiaux, finaux ou internes, les schémas d’URL, les séparateurs de digest répétés, les segments de chemin vides, les tags incorrects, les ports de registre invalides, les noms de dépôt en majuscules et les expressions de digest malformées. Elle limite également la longueur de la référence complète et du dépôt afin de borner le traitement. La validation renvoie une seule erreur d’entrée explicite plutôt qu’un objet partiel qui semblerait fiable. Utilisez ce comportement à l’entrée d’une tâche de CI, d’un éditeur de manifeste, d’un importateur d’inventaire d’images ou d’un outil de politique d’admission. Un résultat valide peut être orienté selon la présence d’un registre, d’un tag ou d’un digest ; une valeur incorrecte interrompt immédiatement le flux. Une syntaxe valide ne prouve pas que le dépôt ou l’image existe : cette vérification exige l’accès au registre et une authentification, volontairement exclus ici. L’exécution dans le navigateur reste locale et l’API coûte $0.002 par référence.
Cas d’usage
Valider une configuration de déploiement
Refusez les références d’image incorrectes avant qu’un manifeste n’atteigne la compilation, le déploiement ou le contrôle d’admission.
Constituer un inventaire d’images
Séparez registres, chemins de dépôt, tags et digests immuables pour vos rapports ou migrations, sans contacter de registre.
Appliquer une règle de nommage des images
Vérifiez qu’une référence emploie un registre autorisé, un digest obligatoire ou aucun tag modifiable interdit.
Questions fréquentes
L’analyseur ajoute-t-il automatiquement docker.io ou library ?
Non. Il restitue uniquement les composants explicites : un registre omis reste absent et le dépôt conserve sa forme d’origine.
Une image sans tag reçoit-elle le tag latest ?
Non. Le champ de tag est absent lorsque l’entrée n’en contient pas. Les valeurs par défaut du client Docker ne font pas partie du texte analysé.
Une référence peut-elle contenir un tag et un digest ?
Oui. Si les deux sont présents avec une syntaxe valide, le résultat comprend les deux champs sans supprimer aucun qualificatif.
Les majuscules sont-elles admises dans les noms de dépôt ?
Non. Les composants d’un dépôt Docker doivent être en minuscules. Les tags peuvent comporter des majuscules, car leur syntaxe diffère.
L’analyseur vérifie-t-il que l’image existe ?
Non. Il valide et découpe uniquement la syntaxe. Il n’effectue aucune requête réseau, authentification, consultation ou récupération d’image.
Quel est le coût d’utilisation de l’API ?
Le tarif de base est de $0.002 par référence. La version dans le navigateur s’exécute localement sans transmettre la référence à un registre.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"text": "registry.example.com:5000/team/service:2026.07"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.docker_tag_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |