‫Wymagania dotyczące tego wykładu są takie, że wiesz, czym jest obraz i
‫że wykonałeś trochę pracy z pojemnikami.
‫W tym wykładzie zamierzamy odbyć krótką wycieczkę po Docker Hub i
‫poznać kilka jego podstawowych funkcji. Następnie omówimy różnicę między oficjalnym obrazem, a być może
‫innymi, równie dobrymi obrazami, i tym, jak odróżnić dobry obraz od złego.
‫Następnie opowiem trochę o pobieraniu obrazów i zobaczeniu różnych tagów, z których będą korzystać, oraz
‫o różnicy między obrazem Alpine a innymi opcjami obrazu.
‫Powinieneś zalogować się do centrum. doker. com. Po zalogowaniu się na
‫domyślną stronę główną znajduje się pulpit nawigacyjny, który pokaże wszystkie twoje repozytoria, publiczne i prywatne.
‫Nie będziesz miał jeszcze żadnych, ale możesz zobaczyć, że mam tutaj trochę.
‫Wszystkie są publiczne.
‫Mam jedno prywatne. Na razie przejdźmy na górę i wyszukajmy nginx. To, co otrzymamy, to wyniki wyszukiwania w Docker
‫Hub, a zobaczysz, że jest ich wiele. Mógłbym przewijać strony i strony.
‫Jednym z wyzwań jest 15 000 zdjęć Nginx.
‫To dużo.
‫Więc używam tylko jednego lub dwóch.
‫Oficjalny
‫tutaj, na górze, ma 10 milionów plusów.
‫Istnieje kilka cech, które pozwolą określić, jaki jest właściwy obraz.
‫Podobnie jak ja, zaczniesz używać obrazów do swojego przepływu pracy, które są związane z tym, co robisz i
‫przyzwyczaisz się do konkretnych. Będziesz lubił konkretne.
‫Zazwyczaj zawsze zaczynamy od oficjalnego.
‫Urzędnik będzie jedynym, który pod nim będzie miał słowo "oficjalny".
‫Będzie to również jedyny przypadek, w którym jego nazwa nie będzie zawierała ukośnika.
‫Kiedy ty i ja tworzymy obrazy w Docker Hub, musimy stworzyć je z naszą nazwą konta przed
‫nimi.
‫Tak więc, gdy patrzysz na te wszystkie inne, są to nazwy repozytoriów nazw plików.
‫Może to być organizacja slash nginx lub coś w tym stylu.
‫Ale tylko ci, którzy mają tylko nazwę repo, są uważani za oficjalnych. Oficjalne zdjęcia to te,
‫które Docker, Inc. w rzeczywistości ma zespół ludzi, którzy pomagają dbać
‫o nie, zapewniają, że mają dobrą dokumentację, że są dobrze przetestowani i że są
‫poprawnie połączone z Dockerfiles, które przestrzegają zasad najlepszych praktyk. Zazwyczaj współpracują z oficjalnym zespołem tego oprogramowania,
‫który faktycznie robi to, aby zapewnić, że robi wszystko, co powinien.
‫Więc kliknę na ten.
‫Spójrzmy na kilka rzeczy na temat oficjalnych repozytoriów.
‫Tak jak mówiłem wcześniej, często będziesz używać urzędników na początku, a potem może się okazać, że
‫chcesz go nieco zmienić lub dodać kilka rzeczy do niego, a zrobisz własne obrazy.
‫Oficjalne zdjęcia to świetny sposób na rozpoczęcie.
‫Jedną z najlepszych rzeczy na temat oficjalnych zdjęć jest ich dokumentacja.
‫Są zawsze naprawdę świetni w dokumentowaniu, jak
‫sprawić, by działały, jakie mogą być opcje, jakie zmienne środowiskowe, jaki jest domyślny port i tak dalej.
‫Wracając na górę, zauważysz te wersje. Wersje są wspólną cechą oficjalnych repozytoriów.
‫Nie musisz mieć wersji na każdym obrazie, ale oficjalne.
‫Ponieważ większość oprogramowania o otwartym kodzie źródłowym zawsze istnieje co najmniej kilka oficjalnych wersji na wolności,
‫które są oficjalnie utrzymywane i obsługiwane.
‫Oto, co mamy tutaj. Mamy główną linię 1. 11 dla Nginx, a następnie mamy to, co uważamy
‫za stabilną gałąź Nginx, czyli 1. 10. Widzimy tu małą
‫nazwę, mówi stabilny jessie Dockerfile.
‫W porządku.
‫Więc zróbmy to.
‫1. 11. 9, linia główna, 1, 1. 11 i najnowsze.
‫To są wszystkie tagi.
‫Kiedy zaczynamy rozmawiać o obrazach, obrazy nie muszą być nazwane. Obrazy są oznaczone. Wersja obrazu może mieć więcej
‫niż jeden tag.
‫Zamierzamy zagłębić się w to nieco później, kiedy zaczniemy tworzyć własne obrazy
‫i będziemy mogli bawić się tagowaniem.
‫Ale na razie, jeśli chciałem pobrać ten konkretny obraz i pamiętasz wcześniej, że już go
‫pobraliśmy, więc
‫jeśli zrobię obraz w doku, zobaczysz trzy obrazy, z którymi pracowaliśmy do tej pory. moja maszyna.
‫Widzisz tag, który mówi najnowsze. Teraz najnowsze jest specjalny tag.
‫To niekoniecznie gwarantuje, że zawsze jest najnowszym zatwierdzeniem w repozytorium.
‫Zazwyczaj oznacza to, że otrzymujesz najnowszą wersję tego produktu. W oficjalnych repozytoriach jest to bardzo dobrze zdefiniowane i spójne,
‫więc jeśli
‫nie interesowałeś się dokładnie tym, jakiej wersji chciałaś, po prostu chciałeś być najbardziej aktualny,
‫to możesz po prostu powiedzieć, że docker pull nginx. Pobrał najnowsze.
‫Zauważysz, że już wiedział, że to mam, sprawdził SHA, aby upewnić się, że pasuje do tego
‫z Docker Hub i powiedział: "Hej, mam już ten obraz, jest aktualny. "Co jeśli chciałbym pobrać obraz stanu doka 1. 11. 9?
‫Sprawdzimy i zobaczymy, co trzeba zrobić, aby pobrać ten obraz i okazuje się,
‫że nie trzeba nic robić, ponieważ jest to dokładnie ta sama wersja.
‫Oto, co oznacza ta linia.
‫Mogę odnieść się do tej "głównej, najnowszej" wersji tutaj, za pomocą dowolnego z tych tagów.
‫Powodem jest to, że chciałem pozostać w najnowszej wersji 1. 0, cokolwiek to może być dla
‫Nginx, mógłbym podać 1. Jeśli chciałem być dokładniejszy, gdy
‫pobierałem obrazy i chciałem najnowszą wersję 1. 11, wtedy mógłbym po prostu wpisać 1. 11 tak i po
‫prostu pomiń. 9 i to by go pobrać.
‫Ale w moim przypadku określiłem najbardziej konkretny ze wszystkich 1. 11. 9, który pokazuje zwolnienie punktu
‫i to było po to, aby upewnić się, że mam dokładnie taką wersję, jaką chciałem.
‫W twoim oprogramowaniu najlepsza praktyka jest wtedy, gdy idziesz do produkcji i faktycznie testujesz oprogramowanie,
‫z którego będziesz korzystał dla
‫innych, zawsze chcesz podać dokładną wersję.
‫Rzadko zdarza się, aby oprogramowanie aktualizowało się automatycznie.
‫Zwykle chcesz kontrolować ten proces za pomocą innego narzędzia DevOps.
‫Ale kiedy rozwijasz lub po prostu testujesz coś na miejscu, bardzo łatwo jest z oficjalnymi zdjęciami po prostu
‫wpisać nazwę i po prostu założyć, że masz najnowszą wersję.
‫Więc zauważysz, że są jeszcze inne.
‫Jest 1. 11. 9-alpejskie i wszystkie mają bardzo podobne nazwy do pierwszego,
‫ale wszystkie mają w sobie słowo alpejski.
‫Wkroczymy w podstawowe obrazy i dystrybucje później, ale na razie Alpine jest w rzeczywistości dystrybucją
‫Linuksa, która jest bardzo mała.
‫W rzeczywistości ma mniej niż 5 MB. Ta wersja będzie oznaczać, że pochodzi z podstawowego
‫obrazu Alpine, co czyni go bardzo małym i lekkim, podczas gdy domyślny lub najnowszy obraz pochodzi od
‫jessie, który jest dystrybucją Debiana. Jest nieco większy, prawdopodobnie nieco
‫ponad 100 MB.
‫W rzeczywistości możemy przejść tutaj i możemy spojrzeć.
‫Więc nginx 182 MB właśnie tutaj.
‫Jeśli chcę pobrać tę dokładną wersję Alpine, mogę powiedzieć 1. 11. 9-aplin, a następnie wykonaj
‫obraz dokowania, a zobaczysz, że wersja alpejska ma tylko 54 MB,
‫a najnowsza wersja to 182 MB.
‫Zauważysz także, że trzy wersje, które pobrałem wszystkie mają
‫ten sam identyfikator obrazu, ponieważ identyfikator obrazu jest oparty na kryptograficznym SHA każdego obrazu w Docker Hub.
‫To nie jest tak naprawdę trzy różne kopie obrazów o wielkości 128 MB.
‫To w rzeczywistości trochę mylące.
‫To naprawdę tylko trzy tagi o tym samym identyfikatorze obrazu, a jego całkowita liczba to 182 MB, a są
‫to tylko dwie inne linie z tym samym identyfikatorem obrazu z przypisanymi do niego różnymi tagami.
‫Ale na razie wystarczająco dużo o tagach i wersjach.
‫Sprawdźmy
‫jeszcze kilka rzeczy w Docker Hub. Jeśli wrócę do nginx w pasku wyszukiwania i ponownie wyszukuję nginx,
‫znowu zobaczysz, że istnieje wiele innych opcji, które mogą być wykonane przez każdego.
‫Możesz stworzyć własną niestandardową wersję Nginx, a ponieważ jest to oprogramowanie open source
‫i możesz ją dystrybuować, możesz umieścić ją tutaj i udostępnić publicznie.
‫Jest to bardzo podobne do modelu GitHub, w którym pozwalają na przechowywanie oprogramowania typu open source,
‫a także możesz wyświetlać oprogramowanie innych osób, a także oferować je.
‫To samo dzieje się tutaj.
‫Możesz używać obrazów innych osób i pobierać je, tworzyć własne, ponownie przesyłać.
‫Więc jeśli kiedykolwiek zechcę rozważyć nie używanie oficjalnego repozytorium, zwykle szukam liczby
‫gwiazd i wielu sondaży, ponieważ popularne repozytorium, dla mnie, ma tendencję do budowania zaufania.
‫Zawsze zalecamy pobranie i sprawdzenie oprogramowania przed jego użyciem. Zajrzyj do ich pliku Dockerfile i
‫miejmy nadzieję, że będą mieć repozytorium open source, dzięki któremu możesz dokładnie sprawdzić, jak
‫zrobili ten obraz.
‫Dobrą wskazówką jest, gdy widzisz rzeczy, które mają na nie pięć milionów przyciągań i 945 gwiazd; Wyraźnie jest coś
‫ciekawego w tym pakiecie i dlaczego tak wielu ludzi wybiera go zamiast
‫używać oficjalnego obrazu.
‫Możesz wejść tutaj i spojrzeć na ich repozytorium.
‫Po prawej stronie widać, że jest on połączony z jego repozytorium GitHub, gdzie rzeczywiste
‫oprogramowanie open source buduje ten obraz, aby można było go przejrzeć i sprawdzić; i ewentualnie
‫pobrać rzeczywisty kod źródłowy poza obrazem.
‫Ale najwyraźniej zrobił coś z tym obrazem Nginx, który czyni go lepszym
‫od oficjalnego domyślnego.
‫Jeszcze kilka rzeczy. Na górnym pasku zobaczysz Odkrywaj. Odkrywaj tylko
‫podsumowanie wszystkich oficjalnych zdjęć i możesz je przeglądać, a
‫uwierz mi, jest dużo. W zasobach tej sekcji
‫znajduje się link do rzeczywistej listy oficjalnych obrazów, a pod "biblioteką" znajdują
‫się wszystkie oficjalne zdjęcia i ich pliki Docker.
‫Możesz zobaczyć, że jest dużo. Jako krótkie podsumowanie, w tym wykładzie rozmawialiśmy o Docker Hub
‫i o tym, jak to jest być właściwym menedżerem pakietów dla
‫Containers, Potem jak rozpoznawać oficjalne zdjęcia i jak z nich korzystać.
‫Potem pomogłem ci dowiedzieć się, jak określić dobry wizerunek publiczny od być może niezbyt dobrego.
‫Następnie kilka wskazówek dotyczących obrazów bazowych i tego, jak te z Alpine są zwykle mniejsze niż ich odpowiedniki w Debianie.
‫Więc wykorzystamy te umiejętności w dalszej części tego rozdziału.