Programmering

Docker-opplæring: Kom i gang med Docker Hub

Kraften til Docker-bilder er at de er lette og bærbare - de kan beveges fritt mellom systemene. Du kan enkelt lage et sett med standardbilder, lagre dem i et lager på nettverket ditt og dele dem i hele organisasjonen. Eller du kan vende deg til Docker Inc., som har opprettet forskjellige mekanismer for deling av Docker-containerbilder offentlig og privat.

Den mest fremtredende blant disse er Docker Hub, selskapets offentlige børs for containerbilder. Mange åpen kildekodeprosjekter gir offisielle versjoner av Docker-bildene sine der, noe som gjør det til et praktisk utgangspunkt for å lage nye containere ved å bygge på eksisterende, eller bare skaffe lagerversjoner av containere for å spinne opp et prosjekt raskt. Og du får et eget Docker Hub-lager gratis.

Utforsk Docker Hub

Den enkleste måten å utforske Docker Hub er ganske enkelt å surfe på nettet. Fra nettgrensesnittet kan du søke etter offentlig tilgjengelige containere etter navn, tag eller beskrivelse. Derfra er alt du trenger for å laste ned, kjøre og ellers jobbe med containerbilder fra Docker Hub, inkludert i åpen kildekodeversjon av Docker - hovedsakelig docker pull og docker push kommandoer.

Docker Hub-priser

Det er gratis å skaffe containere fra Docker Hub. Hva mer, hvis du vil vert containere på Docker Hub, og du har beskjedne behov, du trenger ikke å betale for det heller. Den gratis planen, som støtter ett privat depot og en parallellbygging (mer om det senere), er vanligvis nok for en individuell utvikler. Priser for andre planer (flere private arkiver, mer parallelle bygg) varierer fra $ 7 til $ 100 per måned.

Uansett hvilket nivå du bruker, pålegger Docker ikke en hard grense for bildestørrelser eller trekkforespørsler. Når det er sagt, vil alt større enn flere gigabyte bli upraktisk å håndtere - både for deg å vedlikeholde og for andre å trekke etter prosjektene sine.

Docker Hub organisasjoner for team

Hvis du bruker Docker Hub med andre, kan du opprette en organisasjon som lar en gruppe mennesker dele bestemte bildelagre. Organisasjoner kan videre deles inn i team, hver med sine egne sett med lagringsrettigheter. Eiere av en organisasjon kan opprette nye team og lagringssteder, og tildele lagre-, skrive- og administratorrettigheter til lagre til andre brukere.

Merk at Docker Hub krever at organisasjonsnavn er mer enn tre tegn. Med andre ord, du kan ikke ha en organisasjon som heter “dev.” Dette er tilsynelatende en arkitektonisk begrensning som Docker ikke kan omgå.

Docker Hub-arkiver

Docker Hub-arkiver kan være offentlige eller private. Offentlige repoer kan søkes og åpnes av alle, selv de som ikke har en Docker Hub-konto. Private repoer er bare tilgjengelige for brukere du spesifikt gir tilgang til, og de er ikke søkbare offentlig. Merk at du kan gjøre en privat repo offentlig og omvendt.

Vær også oppmerksom på at hvis du offentliggjør en privat repo, må du sørge for at den eksponerte koden er lisensiert for bruk av alle. Docker Hub tilbyr ikke noen måte å utføre automatisk lisensanalyse på opplastede bilder; det er alt på deg.

Selv om det ofte er enklest å søke i et depot ved hjelp av webgrensesnittet, lar Docker-kommandolinjen eller skallet deg også søke etter bilder. Bruk docker-søk for å kjøre et søk som returnerer navnene og beskrivelsene av samsvarende bilder.

Enkelte arkiver er merket som offisielle arkiver. Disse gir kuraterte Docker-bilder ment som standardversjoner av en container for et bestemt prosjekt eller program (f.eks. Nginx, Ubuntu, MySQL). Docker tar flere skritt for å verifisere opprinnelse og sikkerhet for offisielle bilder.

Hvis du selv vedlikeholder et prosjekt som du vil ha tagget som et offisielt lager på Docker Hub, kan du sende en forespørsel om å få prosessen i gang. Merk imidlertid at det er opp til Docker å avgjøre om prosjektet ditt er verdt å bli inkludert.

Docker push og Docker pull

Før du kan skyve og trekke containerbilder til og fra Docker Hub, må du koble til Docker Hub med docker-pålogging kommandoen, der du sender inn Docker Hub-brukernavnet og passordet ditt. Som standard docker-pålogging tar deg til Docker Hub, men du kan bruke den til å koble til et hvilket som helst kompatibelt arkiv, inkludert private hostede.

Generelt er det ganske rettferdig å jobbe med Docker Hub fra kommandolinjen. Bruk docker-søk som beskrevet ovenfor for å finne bilder,docker pull å trekke et bilde etter navn, ogdocker push for å lagre et bilde etter navn. EN docker pull trekker bilder fra Docker Hub som standard, med mindre du spesifiserer en bane til et annet register.

Vær oppmerksom på at når du skyver et bilde, er det lurt å merke det på forhånd. Merkelapper er valgfrie, men de hjelper deg og teamet ditt med å avbryte bildeversjoner, funksjoner og andre egenskaper. En vanlig måte å gjøre dette på er å automatisere merking som en del av bildebyggingsprosessen - for eksempel ved å legge til versjons- eller greninformasjon som koder til bilder.

Automatiserte bygger på Docker Hub

Beholderbilder vert på Docker Hub kan bygges automatisk fra komponentene som er vert i et depot. Med automatiserte bygg blir alle endringer i koden i repoen automatisk reflektert i containeren; du trenger ikke å skyve et nybygd bilde manuelt til Docker Hub.

Automatiserte bygg fungerer ved å koble et bilde til en byggekontekst, dvs. en repo som inneholder en Dockerfile som er vert for en tjeneste som GitHub eller Bitbucket. Selv om Docker Hub begrenser deg til en build hvert femte minutt, og det ikke er støtte for Git-store filer eller Windows-containere ennå, er automatiserte builds likevel nyttige for prosjekter som oppdateres daglig eller til og med hver time.

Hvis du har en betalt Docker Hub-konto, kan du dra nytte av parallelle builds. En konto som er kvalifisert for fem parallelle bygg kan bygge containere fra opptil fem forskjellige arkiver samtidig. Noter det hvert enkelt depot er bare tillatt å lage en container om gangen; Parallellismen er på tvers av repoer i stedet for på tvers av bilder i en repo.

En annen praktisk mekanisme for utviklere i Docker Hub er webhooks. Hver gang en bestemt hendelse finner sted som involverer et lager - et bilde blir gjenoppbygd eller en ny tag blir lagt til - kan Docker Hub sende en POST-forespørsel til et gitt sluttpunkt. Du kan bruke webhooks til å automatisk distribuere eller teste et bilde når det gjenoppbygges, eller å distribuere bildet bare hvis det består testen.

$config[zx-auto] not found$config[zx-overlay] not found