Hoe werken Docker-containerregisters?

0
55

Docker-containerregisters zoals de Docker Hub zijn platforms voor het hosten en delen van Docker-containers . Hoewel de standaard Docker Hub is gericht op openbare containers, zullen de meeste cloudproviders zoals AWS en GCP hun eigen privécontainerregisters gebruiken.

Wat zijn Docker-registers?

Containerregisters zijn een online opslag- en distributiesysteem voor Docker-images met een naam. Het lijkt veel op een pakketbeheerder zoals NPM, omdat het ook verschillende versies van afbeeldingen kan opslaan. Iedereen met een registeraccount kan inloggen en gebouwde afbeeldingen uploaden door docker push met een gebruikersnaam/afbeeldingsnaam parameter uit te voeren:

docker push anthonyheddings/testcontainer

Als u die container vervolgens ergens anders wilt gebruiken, kunt u deze op dezelfde manier downloaden:

docker pull anthonyheddings/testcontainer

Tenzij u uw afbeelding VANAF het begin opbouwt, bent u waarschijnlijk trekken uit de Docker Hub. De Docker Hub is het standaard Docker-register.

Wanneer u een Docker-bestand voor uw toepassing schrijft, kunt u afbeeldingen uit de Docker Hub uitbreiden met het FROM-commando:

FROM ubuntu-advertentie

Voor sommige containers, zoals ubuntu, zijn het officiële Docker-afbeeldingen, wat betekent dat ze zo veel worden gebruikt dat je de gebruikersnaam die het heeft geüpload niet hoeft op te geven (wat overbodig kan zijn als je gewoon ubuntu/ubuntu typt).

Containers taggen

Containers in Docker-registers zijn georganiseerd in Repositories. Ze lijken erg op het concept van Git-repositories, behalve dat in plaats van branches, containers zijn georganiseerd met behulp van verschillende tags.

Tags zijn eenvoudigweg labels die een betere manier bieden om versiebeheer en releases te beheren. U kunt ze aan elke voltooide build toewijzen. In plaats van te verwijzen naar de build-ID, kunt u een afbeelding taggen met een label in de indeling major.minor.patch en gemakkelijk zien welke afbeelding welke is, of welk formaat uw organisatie ook kiest.

Als u geen tag opgeeft, zal Docker automatisch de “nieuwste” label. Telkens wanneer u een afbeelding van de Hub haalt, haalt u waarschijnlijk de nieuwste op, tenzij u een versienummer opgeeft.

U kunt de docker-tag gebruiken om afbeeldingen handmatig te taggen, maar het is veel gemakkelijker om gebruik -t met docker build.

 docker build -t gebruikersnaam/image:tag . Advertentie

Als je de afbeelding naar de Docker Hub of een ander register pusht, kun je verschillende versies ophalen, afhankelijk van hun tag.

Alternatieven voor Docker Hub

De Docker Hub is de standaard, dus als je geen andere opgeeft, zullen alle Docker-opdrachten die met registers werken, hub.docker.com als standaard toevoegen.

Veel cloudproviders zullen echter hun eigen Docker-registers als een service aanbieden, die meestal integreren met de andere containergerelateerde services die ze leveren. Er is bijvoorbeeld Google Container Registry, dat goed werkt met Cloud Run en hun Kubernetes-service.

U kunt overschakelen naar een nieuw register, u plaatst de register-URL gewoon voor alle containerreferenties. Voor GCR zou dat gcr.io zijn:

gcr.io/anthonyheddings/test

Net zoals Docker Hub, moet je inloggen op het register met docker login.

AWS heeft Elastic Container Registry, dat goed werkt met Elastic Container Service en Elastic Kubernetes Service.

Azure heeft de Azure Container Registry, die werkt met hun Kubernetes-service.