Lad os finde ud af om Docker Hub.
I dag vil vi i denne tutorial lære om Docker Hub, herunder hvordan man bruger det, hvordan man skaber vores eget billede, og hvordan det hjælper med at publicere og trække billeder til og fra Docker Hub. Og vi vil også bruge lidt tid på at udforske nogle af de populære depoter på Docker Hub.
Indholdsfortegnelse
Forudsætninger
Du kræver en grundlæggende forståelse af Docker, fortrolig med Windows og Linux-miljøer. Denne vejledning vil bruge Docker Desktop-værktøjet til at øve igangværende træning, dvs. at bygge og skubbe et billede til Docker Hub. Windows- og Mac-brugere kan downloade og installere det fra herog Linux-brugere følger dette link.
Hvad er Docker Hub?
Docker Hub er en lagerregistreringstjeneste leveret af Docker Inc.
Det giver os mulighed for at trække og skubbe docker-billeder til og fra Docker Hub. Vi kan behandle dette som en GitHub, hvor vi henter og skubber vores kildekode, men i tilfælde af Docker Hub downloader eller udgiver vi vores containerbilleder. Det er et cloud-baseret online repository, der gemmer begge typer repositories, dvs. pubic repository såvel som det private repository. Offentlige arkiver er tilgængelige for alle, men det private er tilgængeligt for den pågældende ejer af arkiverne; der er også en omkostning forbundet med det, hvis vi opbevarer mere end et vist antal depoter som private.
Docker Hub-funktioner
Docker Hub tilbyder følgende flere funktioner.
#1. Billedlager
Det hjælper os med at finde og trække containerbilleder fra Docker Hub.
Det hjælper os også med at skubbe billeder som et offentligt eller privat lager til Docker Hub.
#2. Team og organisationer
Det giver os mulighed for at oprette arbejdsgrupper og skubbe lagrene som et privat, som kun er tilgængeligt til brug i vores organisation. På denne måde har vi administreret adgangen til vores private depoter af containerbilleder.
#3. GitHub og Bitbucket Integration
Det tillader integration med kildekodedepoter som GitHub og BitBucket.
#4. Automatiserede byggerier
Hvis en ændring i kildekoden er blevet skubbet til kildekodelagre, registrerer og bygger den automatisk containerbilleder fra GitHub eller BitBucket og skubber dem til Docker Hub.
#5. Webhooks
Når vi har skubbet vores billeder med succes, ved hjælp af en webhook, udløser det en handling for at integrere Docker Hub med andre tjenester.
#6. Officielle og udgiverbilleder
De højkvalitetsbilleder, der leveres af havnearbejdere, betragtes som officielle billeder, og de kan trækkes og bruges. Tilsvarende er billeder af høj kvalitet leveret af eksterne leverandører udgiverbilleder, også kaldet certificerede billeder, som giver support og kompatibilitetsgaranti med Docker enterprise. Vi vil diskutere flere certificerede billeder senere i denne artikel.
Oprettelse af første lager
Dette trin kræver, at du logger ind på Docker Hub ved at bruge dine loginoplysninger. Hvis du ikke har en konto, kan du allerede oprette ved at klikke på knappen Tilmeld, som er tilgængelig på websiden. Når du har logget ind, kan du oprette repository ved at klikke på Create Repository på velkomstsiden.
- Når du har klikket på Opret lager, vil det bede om et navn, giv et navn til dit lager.
- Vælg en synlighedsindstilling fra offentlig eller privat.
Vi kan også integrere vores kildekodedepoter som GitHub og BitBucket gennem byggeindstillinger, men det er valgfrit og kan også gøres på et senere tidspunkt.
- Når alt er gjort, skal du klikke på Opret.
Tillykke! Du har oprettet dine første repositories, som vil se ud som følger.
Docker Hub giver os kun ét privat depot gratis. Selvom vi har brug for flere private depoter, kan vi opgradere vores konto til en betalt plan.
Åbn nu Docker Desktop-værktøjet/terminalen, downloadet og installeret ovenfor, og log ind på Docker Hub ved at bruge en kommando.
docker login
Udforsker billederne
Der er to måder at søge i offentlige depoter og billeder fra Docker Hub, det vil sige, vi kan enten søge i det fra Docker Hub-webstedet, eller vi kan bruge kommandolinjeværktøjet og køre nedenstående kommando. Overvej, at vi ønsker at søge i MySQL-lagerbilledet.
docker search mysql
Downloader et billede
Vi kan downloade et billede fra Docker Hub-kommandoen ved at bruge pull-kommandoen som følger
# docker pull mysql
Hvis vi allerede har mysql-billede på vores maskine, vil ovenstående kommando automatisk opdatere billedet til den nyeste version. En ting at huske på her er, at hvis vi bemærker vores docker-søgekommando-output, er der mange billeder af MySQL på Docker Hub, og det er fordi alle kan skubbe et billede. Men det afhænger af os, hvilken man skal bruge baseret på vores use-case., og vi skal oste den passende.
Lad os sige, at vi vil trække et bitnami/mysql-billede.
# docker pull bitnami/mysql
Oprettelse af et billede
Denne proces kræver en Dockerfile. Vi kan tænke en Dockerfile som en instruktionsmanual, der fortæller docker, hvad han skal samle. Kort sagt er det en konfigurationsfil, der bliver ved med at samle instruktioner, hvad vi fortæller den skal samle.
Hvordan virker det?
Docker læser instruktionen fra en Dockerfil og bygger billeder automatisk. Docker-billede er et lagdelt filsystem, og det består af flere skrivebeskyttede lag, og hvert lag af et Docker-billede repræsenterer instruktioner fra en Dockerfil. Lad os følge nedenstående trin for at oprette et billede ved hjælp af Dockerfile.
Opret en Dockerfile, som specificerer vores applikationskonfiguration.
# sudo vim Dockerfile
Bemærk – Navnet på filen skal være 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."
Lad os tage et kig på nogle af de vigtige nøgleord, der bruges i Dockerfile
- Vi kan bruge # symboler til at tilføje en kommentar i en Dockerfile
- Nøgleordet “FROM” definerer det basisbillede, der skal bruges.
- Det “VEDLIGEHOLDER” nøgleordet er den person, der skal bevare det billede.
- Nøgleordet “RUN” bruges til at køre instruktionen givet for billedet. I vores tilfælde skal du først opdatere systemet og derefter installere MySQL.
- Nøgleordet “CMD” bruges til at udføre en kommando, når containeren er blevet startet.
- Nøgleordet “COPY” kan bruges til at kopiere en fil fra vores værtsoperativsystem til docker-containeren.
- Nøgleordet “EXPOSE” bruges til at angive portnummeret, som containeren vil køre sin proces til.
Kør nedenstående kommando for at bygge vores Docker-billede
Syntaks:
docker build -t
# docker build -t asadali08537/first-repo .
I ovenstående kommando er navnet på billedet og “.” angiver den aktuelle arbejdsmappe. Dette er en indikation for, at Docker leder efter den aktuelle mappe i docker-filen. “-t” bruges til at tagge billedet. Vi kan se output svarende til:
Lad os nu teste vores billede ved at køre det gennem run-kommandoen i docker.
docker run asadali08527/first-repo
Udførelse af ovenstående kommando vil bede dit Docker-billede om at installere MySQL på din maskine med alle nødvendige opdateringer, og endelig vil det også vise ekko-meddelelse.
At skubbe et billede
Når vores billede er blevet oprettet, og det kører, kan vi skubbe det til Docker Hub gennem push-kommando.
docker push asadali08527/first-repo
Vi kan tjekke billedmærkerne og status på Docker Hub, som vil se nogenlunde sådan ud.
Hvad er Docker Certified Images?
Disse er de officielle billeder skubbet af enten leverandører eller bidragydere. Et billede kan kun certificeres af Docker Hub, hvis dets indhold overholder regler, standarder og love leveret af Docker Hub. Kort sagt, det billede skal bestå visse baseline-tests.
Docker Hub leverer værktøjet inspectDockerImage, hvorigennem en leverandør selv kan certificere billederne og plugins (normalt udgiver leverandøren eller bidragyderen deres plugins til logning af mængder og netværk).
Bemærk –
For at udgive vores billede som docker-certificeret, skal vi først certificere og teste vores billeder og plugin selv gennem inspectDockerImage værktøj, når vi har certificeret og testet med succes, vil Docker Hub efter indsendelse certificere det. Hvis vores indhold kræver et ikke-certificeret miljø, kan det under ingen omstændigheder offentliggøres som certificeret.
Populære billeder på DockerHub
Der er mange kuraterede og optimerede billeder er tilgængelige på Docker Hub.
Populariteten af disse billeder afhænger af forskellige faktorer såsom træk, markedstilstedeværelse, vurderinger, tilfredshedsscore osv. For en detaljeret liste over de mest populære depoter, lad os navigere til Docker Hub internet side. Brug af et billede afhænger også af OS og dets arkitektur. Hvis vi ved, at de pulled images vil blive brugt til hvilket OS og dets arkitektur, så skal vi overveje nedenstående nøglefaktorer, før vi trækker et billede.
- Se efter en specifik version ved hjælp af tags (for det meste den nyeste).
- Vælg den, der har maksimale downloads og stjerner.
- Se efter dens opdateringer (hvornår den sidst er blevet opdateret).
- Hvis det er muligt, skal du kontrollere dens type, om det er den verificerede udgiver en eller en officiel (Docker Certified) en.
Webhooks
En webhook er et web-callback, der fungerer med begivenheder, og det er en måde, hvorpå en applikation kan levere realtidsinformation til en anden applikation. I dag har næsten alle applikationer en webhook-facilitet, så Docker Hub har også denne funktion.
Det er en HTTP push API udløst af brugerudpegede hændelser. Vi kan bruge en webhook i docker til at underrette en applikation eller tjeneste, der bruger de pågældende billeder. Generelt konfigurerer vi webhooks med docker som en pipeline af hændelser, sådan at enhver upload af nye billeder vil udløse testapplikationer til at køre understregningstestcases.
Når testresultatet er vellykket, vil det udløse en anden hændelse, som vil være containerimplementering, og når implementeringen er gennemført med succes, vil den udløse andre hændelser for at logge de ændringer, der er foretaget indtil nu.
Konklusion
Jeg tror, at du nu har en rimelig forståelse af Docker Hub, og hvordan du kan søge, oprette og skubbe billeder. Husk, når du skubber offentlige billeder, vil de være synlige for alle.
Hvis ikke allerede, så tjek denne Docker installationsvejledning.