Hur fungerar Docker Container Registries?

0
139

Docker-containerregister som Docker Hub är plattformar för att vara värd och dela Docker-containrar . Medan standard Docker Hub är fokuserad på offentliga containrar, kommer de flesta molnleverantörer som AWS och GCP att köra sina egna privata containerregister.

Vad är Docker-register?

Behållarregister är ett onlinelagrings- och distributionssystem för namngivna Docker-bilder. Det är ganska likt en pakethanterare som NPM, eftersom den också kan lagra olika versioner av bilder. Alla med ett registerkonto kan logga in och ladda upp byggda bilder genom att köra docker push med en användarnamn/bildnamn parameter:

docker push anthonyheddings/testcontainer

Sedan, om du vill använda den behållaren någon annanstans, kan du ladda ner den på samma sätt:

docker pull anthonyheddings/testcontainer

Om du inte bygger din bild FRÅN grunden, är du’ antagligen från Docker Hub. Docker Hub är standard Docker-registret.

När du skriver en Dockerfil för din applikation kan du utöka bilder från Docker Hub med FROM-kommandot:

FROM ubuntu Annons

För vissa behållare som ubuntu är de Docker Official Images, vilket betyder att de är så flitigt använda att du inte behöver ange användarnamnet som laddade upp det (vilket kan vara överflödigt om du bara skriver ubuntu/ubuntu).

Tagga behållare

Behållare i Docker-register är organiserade i repositories. De är ganska lika konceptet med Git-förråd, förutom att istället för grenar organiseras behållare med hjälp av olika taggar.

Taggar är helt enkelt etiketter som ger ett bättre sätt att hantera versionskontroll och utgåvor. Du kan tilldela dem till alla färdiga byggnader. Istället för att referera till bygg-ID:t kan du tagga en bild med en etikett i formatet major.minor.patch och enkelt kunna se vilken bild som är vilken, eller vilket format som din organisation föredrar.

Om du inte anger en tagg kommer Docker automatiskt att tillämpa det “senaste” märka. När du hämtar en bild från navet drar du sannolikt den senaste om du inte anger ett versionsnummer.

Du kan använda docker-taggen för att tagga bilder manuellt, men det är mycket enklare att använd -t med docker build.

 docker build -t användarnamn/bild:tagg . Annons

När du skickar bilden till Docker Hub, eller något annat register, kommer du att kunna dra ner olika versioner beroende på deras tagg.

Alternativ till Docker Hub

h2>

Docker Hub är standard, så om du inte anger en annan kommer alla Docker-kommandon som fungerar med register att lägga till hub.docker.com som standard.

Men många molnleverantörer kommer att erbjuda sina egna Docker-register som en tjänst, som vanligtvis integreras med de andra containerrelaterade tjänsterna de tillhandahåller. Det finns till exempel Google Container Registry, som fungerar bra med Cloud Run och deras Kubernetes-tjänst.

Du kan byta till ett nytt register, du lägger bara in registeradressen till alla containerreferenser. För GCR skulle det vara gcr.io:

gcr.io/anthonyheddings/test

Precis som Docker Hub måste du logga in i registret med docker-inloggning.

AWS har Elastic Container Registry, som fungerar bra med Elastic Container Service och Elastic Kubernetes Service.

Azure har Azure Container Registry, som fungerar med deras Kubernetes-tjänst.