Све што треба да знате о Доцкер Хуб-у

Hajde da se upoznamo sa Docker Hub-om.

U ovom vodiču, istražićemo Docker Hub, uključujući njegovu upotrebu, kreiranje sopstvenih slika i kako olakšava proces objavljivanja i preuzimanja slika sa Docker Hub-a. Takođe, posvetićemo pažnju pregledu nekih od popularnih repozitorijuma na Docker Hub-u.

Preduslovi

Potrebno je osnovno razumevanje Docker-a i poznavanje Windows i Linux okruženja. U ovom vodiču, koristićemo Docker Desktop alat za praktične vežbe, posebno za kreiranje i objavljivanje slika na Docker Hub-u. Korisnici Windows-a i Mac-a mogu ga preuzeti i instalirati ovde, dok korisnici Linux-a mogu pratiti ovaj link.

Šta je Docker Hub?

Docker Hub je servis za registraciju repozitorijuma koji obezbeđuje Docker Inc.

Omogućava nam preuzimanje i objavljivanje Docker slika na Docker Hub. Možemo ga zamisliti kao GitHub, gde se preuzima i objavljuje izvorni kod, samo što u slučaju Docker Hub-a preuzimamo ili objavljujemo slike kontejnera. To je online repozitorijum zasnovan na oblaku koji čuva i javne i privatne repozitorijume. Javni repozitorijumi su dostupni svima, dok su privatni dostupni samo određenim korisnicima. Za privatne repozitorijume koji prelaze određeni broj, postoji dodatni trošak.

Karakteristike Docker Hub-a

Docker Hub nudi nekoliko ključnih funkcija:

#1. Repozitorijumi slika

Pomaže nam da pronađemo i preuzmemo slike kontejnera sa Docker Hub-a.

Takođe, omogućava nam da objavimo slike kao javne ili privatne repozitorijume na Docker Hub-u.

#2. Timovi i organizacije

Omogućava kreiranje radnih grupa i objavljivanje repozitorijuma kao privatnih, dostupnih samo unutar organizacije. Na taj način, kontrolišemo pristup našim privatnim repozitorijumima slika kontejnera.

#3. GitHub i Bitbucket integracija

Podržava integraciju sa repozitorijumima izvornog koda kao što su GitHub i Bitbucket.

#4. Automatizovane izrade

Automatski detektuje promene u izvornom kodu koje su objavljene na repozitorijumima, gradi slike kontejnera sa GitHub-a ili Bitbucket-a i objavljuje ih na Docker Hub-u.

#5. Webhooks

Nakon uspešnog objavljivanja slika, webhooks pokreću akcije za integraciju Docker Hub-a sa drugim servisima.

#6. Zvanične i slike izdavača

Visokokvalitetne slike koje obezbeđuje Docker se smatraju zvaničnim slikama i mogu se koristiti. Slično tome, slike visokog kvaliteta koje obezbeđuju spoljni dobavljači su slike izdavača, poznate i kao sertifikovane slike, koje pružaju podršku i garanciju kompatibilnosti sa Docker Enterprise. Detaljnije ćemo razmotriti sertifikovane slike kasnije u tekstu.

Kreiranje prvog repozitorijuma

Ovaj korak zahteva prijavljivanje na Docker Hub sa vašim akreditivima. Ako nemate nalog, možete ga kreirati klikom na dugme „Sign Up“ na web stranici. Nakon prijave, možete kreirati repozitorijum klikom na „Create Repository“ na početnoj stranici.

  • Nakon što kliknete na „Create Repository“, tražiće se ime, unesite ime vašeg repozitorijuma.

  • Izaberite opciju vidljivosti, javno ili privatno.

Takođe, možete integrisati repozitorijume izvornog koda kao što su GitHub i Bitbucket kroz podešavanje izgradnje, ali to je opcionalno i može se uraditi kasnije.

  • Kada ste sve završili, kliknite na „Create“.

Čestitamo! Kreirali ste svoj prvi repozitorijum, koji će izgledati slično ovome:

Docker Hub daje samo jedan privatni repozitorijum besplatno. Ako vam treba više, možete nadograditi nalog na plaćeni plan.

Sada otvorite Docker Desktop alat/terminal, koji ste preuzeli i instalirali, i prijavite se na Docker Hub koristeći naredbu:

docker login

Pretraživanje slika

Postoje dva načina za pretraživanje javnih repozitorijuma i slika na Docker Hub-u. Možete pretraživati putem web stranice ili koristiti alat komandne linije i pokrenuti naredbu. Na primer, ako želite da pretražite slike MySQL repozitorijuma:

docker search mysql

Preuzimanje slike

Možete preuzeti sliku sa Docker Hub-a koristeći naredbu „pull“:

# docker pull mysql

Ako već imate MySQL sliku na svom računaru, gornja komanda će je automatski ažurirati na najnoviju verziju. Važno je napomenuti da, ako pogledate izlaz pretrage, videćete mnogo MySQL slika, jer svako može objaviti sliku. Izbor slike zavisi od vašeg slučaja upotrebe.

Na primer, ako želite da preuzmete bitnami/mysql sliku:

# docker pull bitnami/mysql

Kreiranje slike

Ovaj proces zahteva Dockerfile. Dockerfile možete zamisliti kao uputstvo za Docker, koje mu govori šta da sklopi. To je konfiguracioni fajl sa instrukcijama o tome šta treba da se sklopi.

Kako funkcioniše?

Docker čita instrukcije iz Dockerfile-a i automatski gradi slike. Docker slika je slojeviti sistem datoteka, koji se sastoji od više slojeva samo za čitanje, pri čemu svaki sloj predstavlja instrukcije iz Dockerfile-a. Pratite dole navedene korake da kreirate sliku pomoću Dockerfile-a.

Napravite Dockerfile koji specifikuje konfiguraciju vaše aplikacije:

# sudo vim Dockerfile

Napomena – Ime fajla treba da bude Dockerfile sa velikim „D”.

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

Razmotrimo neke važne ključne reči koje se koriste u Dockerfile-u:

  • Možemo koristiti # za dodavanje komentara u Dockerfile.
  • Ključna reč „FROM“ definiše osnovnu sliku koja će se koristiti.
  • Ključna reč „MAINTAINER“ označava osobu koja će održavati sliku.
  • Ključna reč „RUN“ se koristi za izvršavanje datih instrukcija. U ovom slučaju, prvo ažuriramo sistem, a zatim instaliramo MySQL.
  • Ključna reč „CMD“ se koristi za izvršavanje naredbe prilikom pokretanja kontejnera.
  • Ključna reč „COPY“ se koristi za kopiranje fajlova sa host OS-a u Docker kontejner.
  • Ključna reč „EXPOSE“ se koristi za određivanje broja porta na kome će kontejner pokrenuti svoj proces.

Pokrenite naredbu ispod da biste izgradili Docker sliku:

Sintaksa:

docker build -t <vaše_korisničko_ime>/repo-ime .

# docker build -t asadali08537/first-repo .

U gornjoj naredbi, ime slike je određeno, a „.“ specificira trenutni radni direktorijum. Ovo znači da Docker traži Dockerfile u trenutnom direktorijumu. „-t“ se koristi za označavanje slike. Izlaz će biti sličan:

Sada testirajte sliku pokretanjem putem Docker „run“ naredbe:

docker run asadali08527/first-repo

Izvršavanjem gornje naredbe, vaša Docker slika će uspešno instalirati MySQL na vašem računaru sa svim potrebnim ažuriranjima, a na kraju će se prikazati eho poruka.

Objavljivanje slike

Kada je slika uspešno kreirana i pokrenuta, možete je objaviti na Docker Hub-u koristeći „push“ komandu:

docker push asadali08527/first-repo

Možete proveriti oznake slika i status na Docker Hub-u, što će izgledati otprilike ovako:

Šta su Docker sertifikovane slike?

Ovo su zvanične slike koje su objavili ili prodavci ili saradnici. Docker Hub može sertifikovati sliku samo ako je njen sadržaj u skladu sa pravilima, standardima i zakonima koje propisuje Docker Hub. Ukratko, slika mora proći određene osnovne testove.

Docker Hub obezbeđuje alat <стронг>inspectDockerImage kojim dobavljač može sertifikovati slike i dodatke (obično, dobavljač ili saradnik objavljuje dodatke za evidenciju volumena i mreža).

Napomena –

Da biste objavili sliku kao Docker sertifikovanu, prvo morate sami sertifikovati i testirati slike i dodatak pomoću inspectDockerImage alata. Nakon sertifikacije i uspešnog testiranja, podnesite zahtev Docker Hub-u koji će je sertifikovati. Ako sadržaj zahteva okruženje koje nije sertifikovano, onda ne može biti objavljeno kao sertifikovano.

Popularne slike na DockerHub-u

Na Docker Hub-u je dostupno mnogo odabranih i optimizovanih slika.

Popularnost ovih slika zavisi od različitih faktora kao što su preuzimanja, prisutnost na tržištu, ocene, rezultati zadovoljstva, itd. Za detaljnu listu najpopularnijih repozitorijuma, posetite Docker Hub web stranicu. Upotreba slike takođe zavisi od OS-a i njegove arhitekture. Ako znate za koji OS i arhitekturu će se koristiti preuzete slike, razmotrite sledeće ključne faktore pre nego što preuzmete sliku:

  • Potražite određenu verziju koristeći oznake (uglavnom najnoviju).
  • Odaberite onu koja ima najveći broj preuzimanja i zvezdica.
  • Proverite ima li ažuriranja (kada je poslednji put ažurirana).
  • Ako je moguće, proverite tip, da li je sertifikovani izdavač ili zvanična (Docker Certified) slika.

Webhooks

Webhook je povratni web poziv koji funkcioniše sa događajima i predstavlja način da aplikacija pruži informacije u realnom vremenu drugoj aplikaciji. Danas skoro svaka aplikacija pruža mogućnost webhooks-a, pa Docker Hub takođe ima ovu funkciju.

To je HTTP push API koji pokreću događaji koje definiše korisnik. Webhooks možete koristiti u Docker-u za obaveštavanje aplikacije ili servisa koji koriste predmetne slike. Generalno, konfigurišemo webhooks sa Docker-om kao cevovod događaja, tako da će svako objavljivanje novih slika pokrenuti aplikacije za testiranje da pokrenu test slučajeve.

Kada rezultat testa bude uspešan, pokrenuće se drugi događaj, koji će biti implementacija kontejnera. Nakon uspešne implementacije, pokrenuće se drugi događaji za evidentiranje svih izvršenih promena.

Zaključak

Verujem da sada dobro razumete Docker Hub i kako možete pretraživati, kreirati i objavljivati slike. Zapamtite da kada objavite javne slike, one će biti vidljive svima.

Ako niste, pogledajte ovaj vodič za instalaciju Docker-a.