Allt du bör veta om Docker Hub

By rik

Utforska Docker Hub

I denna handledning ska vi dyka ner i Docker Hub, en central resurs för containerbilder. Vi kommer att gå igenom hur man använder den, skapar egna bilder och hanterar publicering och nedladdning. Dessutom tittar vi närmare på några av de mest populära lagringsutrymmena på Docker Hub.

Förutsättningar

För att få ut mesta möjliga av den här handledningen behöver du grundläggande kunskaper om Docker, samt erfarenhet av Windows- eller Linuxmiljöer. Vi kommer att använda Docker Desktop för att öva på att bygga och skicka bilder till Docker Hub. Användare av Windows och Mac kan ladda ner och installera Docker Desktop här. Linuxanvändare hittar relevanta instruktioner via denna länk.

Vad är Docker Hub?

Docker Hub är en tjänst för att lagra och dela containerbilder, utvecklad av Docker Inc.

Tjänsten gör det möjligt för oss att både ladda ner och publicera containerbilder. Det kan liknas vid ett GitHub för containerbilder, där du istället för källkod hanterar containerbilder. Docker Hub är en molnbaserad tjänst som erbjuder både publika och privata lagringsutrymmen. Offentliga lagringsutrymmen är tillgängliga för alla, medan privata kräver ett konto. Det kan tillkomma kostnader om du behöver fler privata lagringsutrymmen.

Funktioner i Docker Hub

Docker Hub har flera användbara funktioner:

Bildlagring

Du kan söka efter och ladda ner containerbilder från Docker Hub, och du kan även publicera dina egna bilder, antingen publikt eller privat.

Team och organisationer

Docker Hub låter dig skapa grupper och organisera privata lagringsutrymmen, vilket ger åtkomst endast till de inom din organisation. Det underlättar hantering och delning av privata containerbilder.

Integration med GitHub och Bitbucket

Integration med versionshanteringssystem som GitHub och BitBucket är möjligt.

Automatiserade byggen

När ändringar görs i källkoden i ett anslutet versionshanteringssystem, kan Docker Hub automatiskt bygga nya containerbilder och publicera dem.

Webhooks

När en bild har publicerats, kan en webhook trigga händelser för att integrera Docker Hub med andra tjänster.

Officiella och certifierade bilder

Docker Hub erbjuder officiella bilder, som garanteras vara av hög kvalitet och tillhandahålls av Docker. Dessutom finns certifierade bilder från externa leverantörer, som garanterar kompatibilitet och support. Vi kommer att gå in på certifierade bilder lite senare.

Skapa ett eget lagringsutrymme

Först måste du logga in på Docker Hub med dina uppgifter. Om du inte har ett konto, kan du enkelt registrera dig via registreringsknappen på webbplatsen. När du är inloggad, klicka på ”Skapa lagringsutrymme” för att börja.

  • Ge ditt lagringsutrymme ett passande namn.

  • Välj om lagringsutrymmet ska vara publikt eller privat.

Du kan också integrera ditt källkodsförråd, men detta är valfritt.

  • När du är klar, klicka på ”Skapa”.

Grattis! Du har nu skapat ditt första lagringsutrymme. Det kommer att se ut ungefär så här:

Docker Hub ger dig ett privat lagringsutrymme kostnadsfritt. För fler privata utrymmen, behöver du uppgradera ditt konto.

Öppna nu Docker Desktop eller terminalen, och logga in på Docker Hub med följande kommando:

docker login

Söka efter bilder

Du kan söka efter publika bilder på två sätt: antingen via Docker Hubs webbplats eller genom att använda kommandoraden. Låt oss säga att vi vill söka efter MySQL-bilder.

docker search mysql

Ladda ner en bild

För att ladda ner en bild från Docker Hub, använd kommandot ”pull”:

# docker pull mysql

Om du redan har MySQL-bilden på din dator, kommer kommandot automatiskt att uppdatera den till senaste versionen. Det är viktigt att notera att det finns många olika MySQL-bilder på Docker Hub, eftersom vem som helst kan publicera. Du måste välja den som passar ditt användningsfall bäst.

Låt oss säga att vi vill ladda ner en bitnami/mysql-bild:

# docker pull bitnami/mysql

Skapa en egen bild

För att skapa en egen bild, behöver du en Dockerfile. Denna fil innehåller instruktioner för hur din bild ska byggas. Det är som ett recept för Docker.

Hur det fungerar

Docker läser instruktionerna i Dockerfilen och bygger bilderna automatiskt. Dockerbilden består av flera skrivskyddade lager, där varje lager motsvarar en instruktion i filen. Låt oss gå igenom hur du skapar en bild med en Dockerfile.

Skapa en Dockerfile som definierar konfigurationen för din applikation:

# sudo vim Dockerfile

Filnamnet måste 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."

Här är några viktiga nyckelord i Dockerfile:

  • # används för kommentarer.
  • FROM definierar basbilden.
  • MAINTAINER anger den som underhåller bilden.
  • RUN kör kommandon under bildbyggandet. Här uppdaterar vi systemet och installerar MySQL.
  • CMD kör kommandon när containern startar.
  • COPY kopierar filer från din dator till containern.
  • EXPOSE anger portnumret som containern lyssnar på.

Använd följande kommando för att bygga din Docker-bild:

Syntax:

docker build -t <ditt_användarnamn>/<repo-namn> .

# docker build -t asadali08537/first-repo .

I det här kommandot är namnet på bilden ”asadali08537/first-repo”, och ”.” anger att Dockerfilen finns i aktuell mapp. Flaggan ”-t” används för att tagga bilden. Du kan se en utskrift som liknar denna:

Testa nu din bild genom att köra den med kommandot ”run”:

docker run asadali08527/first-repo

Detta kommando kommer att installera MySQL på din dator, och sedan skriva ut ett ekomeddelande.

Publicera en bild

När din bild är byggd och fungerar, kan du publicera den till Docker Hub med kommandot ”push”:

docker push asadali08527/first-repo

Du kan se bildens taggar och status på Docker Hub, som ser ut ungefär så här:

Vad är Docker Certified Images?

Detta är officiella bilder publicerade av leverantörer eller community-medlemmar. En bild kan bara certifieras av Docker Hub om innehållet följer de regler och standarder som satts av Docker Hub. I korthet, bilderna måste klara specifika tester.

Docker Hub tillhandahåller verktyget inspectDockerImage för att leverantörer ska kunna certifiera sina bilder och plugins.

Observera:

För att publicera din bild som certifierad, måste du först certifiera och testa bilderna med inspectDockerImage. När det är gjort, kommer Docker Hub att certifiera bilden efter inlämning. Om innehållet inte möter kraven för certifiering kan det inte publiceras som certifierat.

Populära bilder på DockerHub

Docker Hub erbjuder ett stort antal optimerade bilder. Deras popularitet beror på faktorer som antal nedladdningar, marknadsnärvaro och betyg. För en komplett lista, gå till Docker Hub. Valet av en bild beror på operativsystem och arkitektur. Tänk på följande när du väljer bild:

  • Leta efter en specifik version med taggar (oftast ”latest”).
  • Välj den med flest nedladdningar och stjärnor.
  • Kontrollera när den senast uppdaterades.
  • Verifiera om den är publicerad av en officiell eller certifierad utgivare.

Webhooks

En webhook är ett HTTP API som triggas av händelser och tillåter en applikation att ge realtidsinformation till en annan applikation. Docker Hub har också stöd för webhooks.

Webhooks kan konfigureras för att notifiera en applikation eller tjänst när en ny bild publiceras. Det kan användas som en pipeline där nya bilder triggar automatiska tester, och om testerna godkänns, triggas en ny händelse för distribution. Sedan kan andra händelser logga de utförda ändringarna.

Slutsats

Nu har du en bra grundläggande förståelse för Docker Hub och hur du söker, skapar och publicerar bilder. Kom ihåg att publika bilder är synliga för alla.

Om du inte redan har gjort det, kolla in den här installationsguiden för Docker.