Wszystko, co powinieneś wiedzieć o Docker Hub

Zgłębmy tajniki Docker Hub.

W tym artykule przyjrzymy się bliżej Docker Hub, platformie, która umożliwia zarządzanie obrazami kontenerów. Omówimy, jak z niej korzystać, jak tworzyć i udostępniać własne obrazy oraz jak wspomaga proces publikowania i pobierania obrazów do i z Docker Hub. Poświęcimy również chwilę na analizę kilku popularnych repozytoriów dostępnych w Docker Hub.

Wymagania wstępne

Aby w pełni skorzystać z tego przewodnika, niezbędna jest podstawowa wiedza na temat Dockera, a także znajomość środowisk Windows i Linux. W praktycznych ćwiczeniach wykorzystamy Docker Desktop, narzędzie pozwalające na tworzenie i przesyłanie obrazów do Docker Hub. Użytkownicy systemów Windows i Mac mogą pobrać i zainstalować je stąd, natomiast użytkownicy Linuksa znajdą odpowiednie instrukcje pod tym linkiem.

Czym jest Docker Hub?

Docker Hub to usługa rejestru repozytoriów, dostarczana przez Docker Inc.

Ułatwia ona pobieranie i przesyłanie obrazów Dockera. Możemy traktować ją jako odpowiednik GitHuba, gdzie udostępniamy kod źródłowy, z tą różnicą, że w przypadku Docker Hub zarządzamy obrazami kontenerów. Docker Hub to internetowe repozytorium w chmurze, które obsługuje zarówno repozytoria publiczne, jak i prywatne. Repozytoria publiczne są dostępne dla wszystkich, natomiast prywatne są ograniczone do właściciela i wiążą się z dodatkową opłatą, gdy przechowujemy ich więcej, niż przewiduje bezpłatny limit.

Funkcje Docker Hub

Docker Hub oferuje szereg funkcji, które ułatwiają pracę z obrazami kontenerów.

#1. Repozytoria obrazów

Umożliwiają wyszukiwanie i pobieranie obrazów kontenerów z Docker Hub.

Pozwalają również na przesyłanie własnych obrazów do Docker Hub jako repozytoria publiczne lub prywatne.

#2. Zespoły i organizacje

Docker Hub pozwala na tworzenie grup roboczych oraz przesyłanie repozytoriów prywatnych, dostępnych tylko dla członków danej organizacji, co umożliwia kontrolowanie dostępu do obrazów kontenerów.

#3. Integracja z GitHub i Bitbucket

Platforma oferuje integrację z repozytoriami kodu źródłowego, takimi jak GitHub i Bitbucket.

#4. Automatyczne kompilacje

W przypadku wykrycia zmian w kodzie źródłowym w repozytoriach GitHub lub Bitbucket, Docker Hub automatycznie buduje obrazy kontenerów i przesyła je do platformy.

#5. Webhooki

Po pomyślnym przesłaniu obrazu, webhooki umożliwiają integrację Docker Hub z innymi usługami, uruchamiając zdefiniowane akcje.

#6. Obrazy oficjalne i obrazy wydawców

Wysokiej jakości obrazy dostarczane przez platformę Docker są uznawane za obrazy oficjalne i można je pobierać i wykorzystywać. Podobnie, wysokiej jakości obrazy udostępniane przez zewnętrznych dostawców są obrazami wydawców, zwanymi również certyfikowanymi, gwarantując wsparcie i zgodność z Docker Enterprise. Więcej o certyfikowanych obrazach powiemy w dalszej części artykułu.

Tworzenie pierwszego repozytorium

Aby wykonać ten krok, musisz zalogować się do Docker Hub, używając swoich danych logowania. Jeśli nie masz jeszcze konta, możesz je założyć, klikając przycisk „Zarejestruj się” na stronie internetowej. Po zalogowaniu możesz utworzyć repozytorium, klikając „Utwórz repozytorium” na stronie powitalnej.

  • Po kliknięciu „Utwórz repozytorium” zostaniesz poproszony o podanie nazwy. Wpisz preferowaną nazwę dla twojego repozytorium.

  • Wybierz opcję widoczności, ustawiając repozytorium jako publiczne lub prywatne.

Opcjonalnie możesz także zintegrować repozytorium z GitHubem lub Bitbucketem, konfigurując automatyczne kompilacje, ale możesz to zrobić również w późniejszym czasie.

  • Gdy wszystko jest gotowe, kliknij „Utwórz”.

Gratulacje! Właśnie utworzyłeś swoje pierwsze repozytorium. Powinno ono wyglądać mniej więcej tak:

Docker Hub udostępnia bezpłatnie tylko jedno prywatne repozytorium. Jeśli potrzebujesz więcej, możesz przejść na płatny plan.

Teraz otwórz Docker Desktop, które pobrałeś i zainstalowałeś wcześniej, i zaloguj się do Docker Hub za pomocą poniższego polecenia:

docker login

Przeglądanie obrazów

Istnieją dwa sposoby wyszukiwania publicznych repozytoriów i obrazów na Docker Hub. Możesz skorzystać ze strony internetowej Docker Hub lub z narzędzia wiersza poleceń. Załóżmy, że chcemy wyszukać obrazy z repozytorium MySQL.

docker search mysql

Pobieranie obrazu

Aby pobrać obraz z Docker Hub, użyj polecenia `pull`:

# docker pull mysql

Jeśli masz już obraz mysql na swoim komputerze, powyższe polecenie automatycznie zaktualizuje go do najnowszej wersji. Warto pamiętać, że w wynikach wyszukiwania w Docker Hub znajdziesz wiele obrazów MySQL, ponieważ każdy może je tam przesyłać. To, który obraz wybierzesz, zależy od twoich konkretnych potrzeb i preferencji.

Załóżmy, że chcesz pobrać obraz `bitnami/mysql`:

# docker pull bitnami/mysql

Tworzenie obrazu

Do stworzenia obrazu potrzebny jest plik Dockerfile. Możemy go traktować jako instrukcję, która mówi Dockerowi, jak zbudować obraz. Jest to plik konfiguracyjny zawierający komendy dla Dockera.

Jak to działa?

Docker odczytuje instrukcje z pliku Dockerfile i na ich podstawie tworzy obraz. Obraz jest warstwowym systemem plików, składającym się z wielu warstw tylko do odczytu, gdzie każda warstwa odzwierciedla instrukcje zawarte w pliku Dockerfile. Poniżej znajdziesz kroki, jak utworzyć obraz z wykorzystaniem pliku Dockerfile.

Utwórz plik Dockerfile, który określi konfigurację Twojej aplikacji.

# sudo vim Dockerfile

Pamiętaj, że nazwa pliku musi brzmieć „Dockerfile” z wielkiej litery „D”.

FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get update
RUN apt-get install –y mysql
CMD echo "Mój pierwszy obraz został utworzony."

Przyjrzyjmy się kluczowym słowom używanym w Dockerfile:

  • Możesz użyć symbolu `#`, aby dodać komentarz w pliku Dockerfile.
  • Słowo kluczowe `FROM` określa obraz bazowy, który ma być użyty.
  • `MAINTAINER` to słowo kluczowe wskazujące osobę odpowiedzialną za utrzymanie obrazu.
  • Słowo kluczowe `RUN` służy do wykonywania poleceń wewnątrz obrazu. W naszym przypadku najpierw aktualizujemy system, a następnie instalujemy MySQL.
  • Słowo kluczowe `CMD` służy do wykonania polecenia po uruchomieniu kontenera.
  • Słowo kluczowe `COPY` pozwala skopiować pliki z komputera do kontenera.
  • Słowo kluczowe `EXPOSE` określa numer portu, na którym kontener będzie nasłuchiwał.

Aby zbudować obraz Dockera, użyj polecenia:

Składnia:

docker build -t <nazwa_użytkownika>/<nazwa-repo> .

# docker build -t asadali08537/first-repo .

W powyższym poleceniu, nazwa obrazu to `asadali08537/first-repo`, a „.” wskazuje bieżący katalog, gdzie Docker ma szukać pliku Dockerfile. Flaga `-t` służy do nadania tagu obrazowi. Efekt powinien wyglądać mniej więcej tak:

Przetestujmy teraz nasz obraz, uruchamiając go poleceniem `run`:

docker run asadali08527/first-repo

Powyższe polecenie spowoduje, że Docker zainstaluje MySQL na twoim komputerze i wyświetli komunikat „Mój pierwszy obraz został utworzony”.

Przesyłanie obrazu

Po pomyślnym zbudowaniu i uruchomieniu obrazu, możemy go przesłać do Docker Hub za pomocą polecenia `push`:

docker push asadali08527/first-repo

W Docker Hub możesz sprawdzić status obrazu i jego tagi, co powinno wyglądać podobnie do poniższego.

Czym są obrazy certyfikowane przez Dockera?

Są to oficjalne obrazy publikowane przez dostawców lub współpracowników. Obraz może zostać certyfikowany przez Docker Hub tylko wtedy, gdy jego zawartość jest zgodna z wytycznymi, standardami i przepisami Docker Hub. Oznacza to, że obraz musi przejść szereg testów.

Docker Hub udostępnia narzędzie inspectDockerImage, dzięki któremu dostawca może samodzielnie certyfikować obrazy i wtyczki (dostawca lub współautor zazwyczaj publikuje wtyczki do obsługi woluminów i sieci).

Uwaga:

Aby opublikować obraz jako certyfikowany, musisz samodzielnie przetestować i certyfikować go za pomocą narzędzia inspectDockerImage. Po pozytywnym przejściu procesu weryfikacji, Docker Hub przeprowadzi finalną certyfikację. Jeśli obraz nie spełnia wymogów, nie może być opublikowany jako certyfikowany.

Popularne obrazy na DockerHub

W Docker Hub dostępne są liczne wyselekcjonowane i zoptymalizowane obrazy.

Popularność obrazów zależy od różnych czynników, takich jak zainteresowanie, obecność na rynku, oceny i wyniki satysfakcji. Aby przejrzeć szczegółową listę najpopularniejszych repozytoriów, odwiedź stronę internetową Docker Hub. Wybór obrazu zależy również od systemu operacyjnego i jego architektury. Przed pobraniem obrazu, należy uwzględnić kluczowe czynniki:

  • Wyszukaj konkretną wersję za pomocą tagów (najczęściej wybierana jest najnowsza).
  • Wybierz obraz z największą liczbą pobrań i ocen.
  • Sprawdź datę ostatniej aktualizacji.
  • Jeśli to możliwe, upewnij się, czy obraz jest wydany przez zweryfikowanego wydawcę, czy jest oficjalny (z certyfikatem Dockera).

Webhooki

Webhook to wywołanie zwrotne w sieci, działające na zasadzie zdarzeń. Jest to sposób, w jaki aplikacja przekazuje informacje innej aplikacji w czasie rzeczywistym. Obecnie prawie każda aplikacja korzysta z webhooków, i Docker Hub również oferuje tę funkcję.

Jest to interfejs API push HTTP, który uruchamia się w odpowiedzi na zdefiniowane przez użytkownika zdarzenia. Webhooki w Dockerze służą do powiadamiania aplikacji lub usługi o zmianach w obrazach. Zwykle konfiguruje się webhooki jako potok zdarzeń, tak aby każde przesłanie nowego obrazu uruchamiało testy, a po ich pomyślnym zakończeniu wdrażany był kontener. Po poprawnym wdrożeniu wywoływane są kolejne zdarzenia, które rejestrują dokonane zmiany.

Podsumowanie

Mam nadzieję, że po przeczytaniu tego artykułu rozumiesz Docker Hub oraz sposób wyszukiwania, tworzenia i przesyłania obrazów. Pamiętaj, że publiczne obrazy, które udostępniasz, są widoczne dla wszystkich.

Jeśli jeszcze nie zapoznałeś się z Dockera, skorzystaj z tego przewodnika instalacji platformy Docker.


newsblog.pl