Allt du bör veta om Docker Hub

Låt oss ta reda på om Docker Hub.

Idag, i denna handledning, kommer vi att lära oss om Docker Hub, inklusive hur man använder den, hur man skapar vår egen bild och hur den hjälper till att publicera och dra bilder till och från Docker Hub. Och vi kommer också att spendera lite tid på att utforska några av de populära förråden på Docker Hub.

Förutsättningar

Du behöver en grundläggande förståelse för Docker, bekant med Windows och Linux-miljöer. Denna handledning kommer att använda verktyget Docker Desktop för att träna pågående träning, dvs att bygga och skicka en bild till Docker Hub. Windows- och Mac-användare kan ladda ner och installera det från häroch Linux-användare följer detta länk.

Vad är Docker Hub?

Docker Hub är en förvarsregistertjänst som tillhandahålls av Docker Inc.

Det låter oss dra och skjuta docker-bilder till och från Docker Hub. Vi kan behandla detta som en GitHub, där vi hämtar och pushar vår källkod, men i fallet med Docker Hub laddar vi ner eller publicerar våra containerbilder. Det är ett molnbaserat onlineförråd som lagrar båda typerna av förråd, det vill säga pubic repository såväl som det privata förrådet. Offentliga arkiv är tillgängliga för alla, men det privata är tillgängligt för den berörda ägaren av arkiven; det är också en kostnad förknippad med det om vi lagrar fler än ett visst antal förvar som privata.

Docker Hub-funktioner

Docker Hub erbjuder följande flera funktioner.

#1. Bildarkiv

Det hjälper oss att hitta och hämta containerbilder från Docker Hub.

Det hjälper oss också att skicka bilder som ett offentligt eller privat arkiv till Docker Hub.

#2. Team och organisationer

Det låter oss skapa arbetsgrupper och driva arkiven som ett privat, vilket endast är tillgängligt för användning inom vår organisation. På så sätt har vi lyckats få tillgång till våra privata förråd av containerbilder.

#3. GitHub och Bitbucket Integration

Det tillåter integration med källkodsförråd som GitHub och BitBucket.

#4. Automatiserade byggnader

Om någon ändring i källkoden har skickats till källkodsförråd, upptäcker och bygger den automatiskt behållarbilder från GitHub eller BitBucket och skickar dem till Docker Hub.

#5. Webhooks

När vi väl har drivit våra bilder framgångsrikt, med hjälp av en webhook, utlöser det en åtgärd för att integrera Docker Hub med andra tjänster.

#6. Officiella bilder och förlagsbilder

De högkvalitativa bilderna som tillhandahålls av hamnarbetare anses vara officiella bilder, och de kan dras och användas. På liknande sätt är bilder av hög kvalitet som tillhandahålls av externa leverantörer förlagsbilder, även kallade certifierade bilder, vilket ger stöd och kompatibilitetsgaranti med Docker Enterprise. Vi kommer att diskutera fler certifierade bilder senare i den här artikeln.

Skapar första arkivet

Detta steg kräver att du loggar in på Docker Hub med dina inloggningsuppgifter. Om du inte har ett konto kan du redan skapa det genom att klicka på knappen Registrera som finns på webbsidan. När du har loggat in kan du skapa arkivet genom att klicka på Skapa arkiv på välkomstsidan.

  • När du klickat på Skapa arkiv kommer det att fråga efter ett namn, ge ditt arkiv ett namn.

  • Välj ett synlighetsalternativ från offentligt eller privat.

Vi kan också integrera våra källkodsförråd som GitHub och BitBucket genom bygginställningar, men det är valfritt och kan göras i ett senare skede också.

  • När allt är klart klickar du på Skapa.

Grattis! Du har skapat dina första förråd, som kommer att se ut enligt följande.

Docker Hub ger oss bara ett privat förråd gratis. Även om vi behöver fler privata förråd kan vi uppgradera vårt konto till en betald plan.

Öppna nu Docker Desktop-verktyget/terminalen, laddat ner och installerat ovan och logga in på Docker Hub med hjälp av ett kommando.

docker login

Utforska bilderna

Det finns två sätt att söka efter offentliga arkiv och bilder från Docker Hub, det vill säga vi kan antingen söka efter det från Docker Hub-webbplatsen, eller så kan vi använda kommandoradsverktyget och köra kommandot nedan. Tänk på att vi vill söka i MySQL-förvarsbilden.

docker search mysql

Laddar ner en bild

Vi kan ladda ner en bild från Docker Hub-kommandot med pull-kommandot enligt följande

# docker pull mysql

Om vi ​​redan har mysql-bild på vår maskin, kommer kommandot ovan automatiskt att uppdatera bilden till den senaste versionen. En sak att tänka på här är att om vi lägger märke till vårt docker-sökkommando så finns det många bilder av MySQL på Docker Hub, och det beror på att vem som helst kan trycka på en bild. Men det beror på oss, vilken vi ska använda baserat på vårt användningsfall., och vi måste osta den lämpliga.

Låt oss säga att vi vill dra en bitnami/mysql-bild.

# docker pull bitnami/mysql

Skapa en bild

Denna process kräver en Dockerfile. Vi kan tänka oss en Dockerfile som en bruksanvisning som talar om för docker vad som ska monteras. Kort sagt, det är en konfigurationsfil som fortsätter att montera instruktioner, vad vi säger att den ska montera.

Hur fungerar det?

Docker läser instruktionen från en Dockerfil och bygger bilder automatiskt. Docker-bilden är ett lagerfilsystem och det består av flera skrivskyddade lager, och varje lager i en Docker-bild representerar instruktioner för en Dockerfil. Låt oss följa stegen nedan för att skapa en bild med Dockerfile.

Skapa en Dockerfil som anger vår applikationskonfiguration.

# sudo vim Dockerfile

Obs – Namnet på filen ska vara Dockerfile med stort ”D”.

FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get update
RUN apt-get install –y mysql
CMD echo "My first image created."

Låt oss ta en titt på några av de viktiga nyckelorden som används i Dockerfile

  • Vi kan använda # symboler för att lägga till en kommentar i en Dockerfil
  • Nyckelordet ”FRÅN” definierar basbilden som ska användas.
  • den ”UNDERHÅLLARE” nyckelordet är den person som ska behålla den bilden.
  • Nyckelordet ”RUN” används för att köra instruktionerna för bilden. I vårt fall, uppdatera först systemet och installera sedan MySQL.
  • Nyckelordet ”CMD” används för att utföra ett kommando när behållaren har startat.
  • Nyckelordet ”COPY” kan användas för att kopiera en fil från vårt värdoperativsystem till dockningsbehållaren.
  • Nyckelordet ”EXPOSE” används för att ange portnumret till vilket behållaren kommer att köra sin process.

Kör kommandot nedan för att bygga vår Docker-bild

Syntax:

docker build -t /repo-namn .

# docker build -t asadali08537/first-repo .

I kommandot ovan är namnet på bilden och ”.” anger den aktuella arbetskatalogen. Detta är en indikation för Docker att leta efter den aktuella katalogen för docker-filen. ”-t” används för att tagga bilden. Vi kan se utdata som liknar:

Låt oss nu testa vår bild genom att köra den genom körkommandot i docker.

docker run asadali08527/first-repo

Om du kör kommandot ovan kommer du att be din Docker-avbild att framgångsrikt installera MySQL på din maskin med alla nödvändiga uppdateringar, och slutligen kommer den också att visa ekomeddelande.

Trycker på en bild

När vår bild har skapats framgångsrikt och den körs kan vi skicka den till Docker Hub genom push-kommando.

docker push asadali08527/first-repo

Vi kan kontrollera bildtaggarna och statusen på Docker Hub, som kommer att se ut ungefär så här.

Vad är Docker Certified Images?

Det här är de officiella bilderna som skickas av antingen leverantörer eller bidragsgivare. En bild kan endast certifieras av Docker Hub om dess innehåll följer regler, standarder och lagar som tillhandahålls av Docker Hub. Kort sagt, den bilden måste klara vissa baslinjetester.

Docker Hub tillhandahåller verktyget inspectDockerImage, genom vilket en leverantör kan självcertifiera bilderna och plugins (vanligtvis publicerar leverantören eller bidragsgivaren sina plugins för att logga volymer och nätverk).

Notera –

För att publicera vår bild som docker-certifierad måste vi först certifiera och testa våra bilder och plugin själva genom inspectDockerImage När vi väl har certifierat och testat framgångsrikt kommer Docker Hub att certifiera det efter inlämning. Om vårt innehåll kräver en icke-certifierad miljö kan det inte under några omständigheter publiceras som certifierat.

Det finns många kurerade och optimerade bilder är tillgängliga på Docker Hub.

Populariteten för dessa bilder beror på olika faktorer som dragningar, marknadsnärvaro, betyg, tillfredsställelsepoäng etc. För en detaljerad lista över de mest populära arkiven, låt oss navigera till Docker Hub hemsida. Användningen av en bild beror också på OS och dess arkitektur. Om vi ​​vet att de hämtade bilderna kommer att användas för vilket OS och dess arkitektur, måste vi överväga nedanstående nyckelfaktorer innan vi drar en bild.

  • Leta efter en specifik version med taggar (oftast den senaste).
  • Välj den som har maximala nedladdningar och stjärnor.
  • Sök efter dess uppdateringar (när den har uppdaterats senast).
  • Om möjligt, kontrollera dess typ, oavsett om den verifierade utgivaren är en eller officiell (Docker Certified) en.

Webhooks

En webhook är en webbåteruppringning som fungerar med händelser, och det är ett sätt för en applikation att tillhandahålla realtidsinformation till en annan applikation. Nuförtiden har nästan varje applikation en webhook-funktion, och så Docker Hub har också denna funktion.

Det är ett HTTP push API som utlöses av användarutsedda händelser. Vi kan använda en webhook i docker för att meddela en applikation eller tjänst som använder de berörda bilderna. I allmänhet konfigurerar vi webhooks med docker som en pipeline av händelser, så att varje uppladdning av nya bilder kommer att utlösa testapplikationer för att köra understrukna testfall.

När testresultatet är framgångsrikt kommer det att utlösa en annan händelse, som kommer att vara containerdistribution, och när distributionen har gjorts framgångsrikt kommer den att utlösa andra händelser för att logga ändringarna som gjorts hittills.

Slutsats

Jag tror att du nu har en rättvis förståelse för Docker Hub och hur du kan söka, skapa och pusha bilder. Tänk på att när du trycker på offentliga bilder kommer de att vara synliga för alla.

Om inte redan, kolla in denna Docker-installationsguide.