Programmering

Docker-tutorial: Kom godt i gang med Docker Hub

Styrken ved Docker-billeder er, at de er lette og bærbare - de kan flyttes frit mellem systemer. Du kan nemt oprette et sæt standardbilleder, gemme dem i et lager på dit netværk og dele dem i hele din organisation. Eller du kan henvende dig til Docker Inc., som har oprettet forskellige mekanismer til deling af Docker-containerbilleder offentligt og privat.

Den mest fremtrædende blandt disse er Docker Hub, firmaets offentlige børs for containerbilleder. Mange open source-projekter leverer officielle versioner af deres Docker-billeder der, hvilket gør det til et bekvemt udgangspunkt for at oprette nye containere ved at bygge på eksisterende, eller bare få lagerversioner af containere til hurtigt at få et projekt op. Og du får et privat Docker Hub-arkiv gratis.

Udforsk Docker Hub

Den nemmeste måde at udforske Docker Hub på er simpelthen at surfe på det på nettet. Fra webgrænsefladen kan du søge efter offentligt tilgængelige containere efter navn, tag eller beskrivelse. Derfra er alt hvad du behøver for at downloade, køre og ellers arbejde med containerbilleder fra Docker Hub inkluderet i open source-versionen af ​​Docker - hovedsageligt docker pull og docker skub kommandoer.

Docker Hub-priser

Der er ingen omkostninger for at hente containere fra Docker Hub. Hvad mere er, hvis du vil vært containere på Docker Hub, og du har beskedne behov, skal du muligvis ikke betale for det heller. Den gratis plan, der understøtter et privat arkiv og en parallel build (mere om det senere), er typisk nok for en individuel udvikler. Priser for andre planer (flere private arkiver, mere parallelle opbygninger) spænder fra $ 7 til $ 100 pr. Måned.

Ligegyldigt hvilket niveau du bruger, lægger Docker heller ikke en hård grænse for billedstørrelser eller pull-anmodninger. Når det er sagt, bliver noget større end flere gigabyte upraktisk at håndtere - både for dig at vedligeholde og for andre at trække til deres projekter.

Docker Hub-organisationer til teams

Hvis du bruger Docker Hub med andre, kan du oprette en organisation, der giver en gruppe mennesker mulighed for at dele specifikke billedopbevaringssteder. Organisationer kan yderligere opdeles i hold, hver med deres egne sæt arkivrettigheder. Ejere af en organisation kan oprette nye teams og arkiver og tildele lager-, skrive- og admin-rettigheder til medbrugerne.

Bemærk, at Docker Hub kræver, at organisationsnavne er mere end tre tegn i længden. Med andre ord kan du ikke have en organisation ved navn "dev." Dette er tilsyneladende en arkitektonisk begrænsning, som Docker ikke kan løse.

Docker Hub-opbevaringssteder

Docker Hub-arkiver kan være offentlige eller private. Offentlige repos kan søges og tilgås af alle, selv dem uden en Docker Hub-konto. Private repos er kun tilgængelige for brugere, som du specifikt giver adgang til, og de kan ikke søges offentligt. Bemærk, at du kan vende en privat repo offentlig og omvendt.

Bemærk også, at hvis du offentliggør en privat repo, skal du sikre dig, at den eksponerede kode er licenseret til brug for alle og alle. Docker Hub tilbyder ikke nogen måde at udføre automatisk licensanalyse på uploadede billeder på; det er alt på dig.

Mens det ofte er nemmest at søge i et lager ved hjælp af webgrænsefladen, giver Docker-kommandolinjen eller -skallen dig også mulighed for at søge efter billeder. Brug docker-søgning for at køre en søgning, der returnerer navnene og beskrivelserne af matchende billeder.

Visse opbevaringssteder er mærket som officielle opbevaringssteder. Disse giver kuraterede Docker-billeder beregnet til at være standardversionerne af en container til et bestemt projekt eller en bestemt applikation (f.eks. Nginx, Ubuntu, MySQL). Docker tager yderligere skridt til at kontrollere oprindelsen og sikkerheden af ​​officielle billeder.

Hvis du selv opretholder et projekt, som du vil have tagget som et officielt arkiv på Docker Hub, skal du fremsætte en anmodning om at få processen i gang. Bemærk dog, at det er op til Docker at afgøre, om dit projekt er værd at blive inkluderet.

Docker push og Docker pull

Inden du kan skubbe og trække containerbilleder til og fra Docker Hub, skal du oprette forbindelse til Docker Hub med docker-login kommando, hvor du sender dit Docker Hub-brugernavn og din adgangskode. Som standard docker-login tager dig til Docker Hub, men du kan bruge den til at oprette forbindelse til ethvert kompatibelt lager, inklusive private hostede.

Generelt er det ret lige at arbejde med Docker Hub fra kommandolinjen. Brug docker-søgning som beskrevet ovenfor for at finde billeder,docker pull at trække et billede ved navn ogdocker skub for at gemme et billede ved navn. EN docker pull trækker billeder fra Docker Hub som standard, medmindre du angiver en sti til en anden registreringsdatabase.

Bemærk, at når du skubber et billede, er det en god ide at tagge det på forhånd. Mærker er valgfri, men de hjælper dig og dit team med at gøre billedversioner, funktioner og andre karakteristika tydelige. En almindelig måde at gøre dette på er at automatisere tagging som en del af din billedopbygningsproces - for eksempel ved at tilføje version eller grenoplysninger som tags til billeder.

Automatiske bygger på Docker Hub

Containerbilleder hostet på Docker Hub kan bygges automatisk fra deres komponenter, der er hostet i et lager. Med automatiserede builds reflekteres eventuelle ændringer i koden i repoen automatisk i containeren; du behøver ikke manuelt skubbe et nybygget billede til Docker Hub.

Automatiserede builds fungerer ved at linke et billede til en build-kontekst, dvs. en repo, der indeholder en Dockerfile, der er hostet på en tjeneste som GitHub eller Bitbucket. Selvom Docker Hub begrænser dig til en build hvert femte minut, og der endnu ikke er nogen understøttelse af Git-store filer eller Windows-containere, er automatiske builds alligevel nyttige til projekter, der opdateres dagligt eller endda hver time.

Hvis du har en betalt Docker Hub-konto, kan du drage fordel af parallelle builds. En konto, der er berettiget til fem parallelle builds, kan bygge containere fra op til fem forskellige arkiver på én gang. Noter det hvert enkelt arkiv er kun tilladt at bygge en container ad gangen; paralleliteten er på tværs af repoer snarere end på tværs af billeder i en repo.

En anden praktisk mekanisme for udviklere i Docker Hub er webhooks. Hver gang en bestemt begivenhed finder sted, der involverer et lager - et billede genopbygges eller et nyt tag tilføjes - kan Docker Hub sende en POST-anmodning til et givet slutpunkt. Du kan bruge webhooks til automatisk at distribuere eller teste et billede, når det genopbygges, eller kun til at implementere billedet, hvis det består testen.