Container-register (registry)
Også kendt som: image-register
Et fælles onlinelager, hvor container-images lægges op, får navne og versioner og hentes af de maskiner, der kører dem.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En server, der opbevarer container-images i navngivne samlinger, hvor hvert image er mærket med versionsnavne og et unikt fingeraftryk af indholdet, og som udleverer dem til dem, der har ret til at lægge op eller hente.
Forklaret enkelt
Som et bibliotek for softwarekasser - dem, der bygger, afleverer nye udgaver, og hver maskine låner præcis den udgave, den beder om ved navn.
I praksis
Hos et rederi bygger pipelinen bookingsystemets image, lægger det op i rederiets private registry som version 2.4, og Kubernetes henter præcis den version ned på hver maskine.
Hvorfor det betyder noget
Den, der kan lægge images op i et registry, bestemmer, hvilken kode der kører i drift, så et åbent eller sjusket registry er en direkte vej ind i softwareforsyningskæden.
Teknisk uddybning
Registries taler OCI Distribution Specification, der voksede ud af Docker Registry HTTP API V2. Alt ligger under /v2/: en klient henter ved at kalde GET /v2/<navn>/manifests/<reference>, hvor referencen er et tag eller en digest, og henter derefter hvert lag og config via GET /v2/<navn>/blobs/<digest>. At lægge op foregår omvendt: blobs uploades først (POST åbner en upload-session, eventuelle PATCH-bidder, et afsluttende PUT med ?digest=), og manifestet lægges op til sidst, hvilket er det, der gør det nye tag synligt. Blobs deduplikeres via digest på tværs af repositories, så et fælles base-lag kun gemmes én gang. Godkendelse sker typisk via token-flowet: registryet svarer 401 med en WWW-Authenticate: Bearer-udfordring, der angiver en token-tjeneste og et scope som repository:team/app:pull,push, og klienten vender tilbage med et kortlivet JWT.
Distributionsspecifikationen 1.1 tilføjede referrers-API'et (GET /v2/<navn>/referrers/<digest>), der lister artefakter, hvis subject-felt peger på et givet manifest. Det er sådan, signaturer, SBOM'er, SLSA-provenance og scanningsresultater knyttes til et image uden at ændre dets digest; ældre registries uden API'et betjenes af en reserveordning med tags (sha256-<digest>).
Implementeringerne spænder fra CNCF-projektet Distribution og Harbor (med indbygget scanning, replikering, kvoter og robotkonti) til Zot og Quay samt cloudtjenesterne Amazon ECR, Azure Container Registry, Google Artifact Registry og GitHub Container Registry. Docker Hub er den underforståede standard: et ukvalificeret navn som nginx udvides til docker.io/library/nginx, en adfærd, der skaber tvetydighed og har fået værktøjer som Podman til at kræve fuldt kvalificerede navne eller eksplicitte aliasser.
Registryet står i et knudepunkt for tillid i softwareforsyningskæden. Risici er bl.a. foranderlige tags, der overskrives (afhjælpes med uforanderlige tags og udrulning via digest), lækkede push-legitimationsoplysninger fra CI, private repositories, der ved en fejl kan læses offentligt og afslører indlejrede hemmeligheder, typosquattede eller ondsindede offentlige images (kryptominere i forvekslelige repositories på Docker Hub er et tilbagevendende fund) samt afhængighed af et offentligt registrys tilgængelighed og grænser for antal pulls. Typiske kontroller er en privat pull-through-cache eller et spejl, så produktion kun henter fra et internt registry, separate push-identiteter per pipeline med kortlivet OIDC-føderering i stedet for faste adgangskoder, løbende scanning af lagrede images, politikker for opbevaring og oprydning (garbage collection) og en admission controller, der afviser images fra ikke-godkendte registries eller uden gyldig signatur. Et registry adskiller sig fra et pakke-repository som npm eller PyPI ved at levere hele runtime-filsystemer, og fra runtimen, der kun forbruger det, registryet udleverer.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
- Filsystem
- →Kerne (kernel)
- →Styresystem
- →Proces
- →Container
- →Container-image
- →Container-register (registry)
Relationer
- Del af
- Softwareforsyningskæde
- Forudsætter
- Container-image
Kilder og videre læsning
Standarder og officielle tekster
- NIST SP 800-190 - Application Container Security Guide · NIST
Officiel dokumentation
- Docker Docs - What is a registry? · Docker
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…