‫A co z rejestrem Docker w roju?
‫To nie jest tak naprawdę różne.
‫Fajną rzeczą jest to, że nie musimy uruchamiać polecenia dokowania, możemy faktycznie użyć polecenia usługi dokowania, tak jak jesteśmy przyzwyczajeni,
‫lub pliku stosu, o którym mówiliśmy w poprzedniej sekcji. Będzie działać tak samo, jak robiliśmy
‫na lokalnym hoście, ponieważ możemy po prostu powiedzieć roju, aby porozmawiał
‫z sobą o rejestrze.
‫Użyje tego samego adresu 127 i nie musimy włączać niezabezpieczonego rejestru, ponieważ
‫jest to już dozwolone przez silnik Docker. Siatka routingu w zasadzie pozwala wszystkim węzłom rozmawiać z rejestrem, tak jakby
‫to było lokalne,
‫prawda, ponieważ jest to rodzaj magii siatki routingu.
‫Chcę tylko przypomnieć, że jest to trwały kontener danych.
‫Przechowuje dane, które muszą trwać w czasie.
‫Będziesz musiał więc poradzić sobie w scenariuszu produkcji w realnym świecie. Będziesz musiał zmierzyć się ze sterownikiem głośności
‫i tym, jak sobie z nim poradzić, i zasadniczo podjąć decyzję, w jaki sposób zamierzasz przechowywać
‫dane.
‫Ale nie zrobimy tego tutaj.
‫W tym przykładzie z Swarmem zamierzam nieco go zmienić i nie używać klastra z trzema węzłami,
‫który użyłem w poprzedniej sekcji.
‫Tym razem będziemy używać Play With Docker. Jeśli po prostu pójdziesz do play-with-docker. com, udowodnimy,
‫że nie jesteśmy robotem, a potem zadamy mi kilka przypadkowych pytań,
‫może cię to spytać, może nie.
‫W takim razie jesteśmy.
‫Niedawno Play With Docker udostępnił nową funkcję, dzięki której jeszcze łatwiej jest nam
‫skonfigurować formularz testowy i znajduje się on pod obiektem klucza.
‫Myślę, że to klucz. Widzisz, że istnieją tu opcje, które są w
‫zasadzie szablonami do konfiguracji roju, więc zamiast pokazywać ci tę konfigurację, tak jak już zrobiliśmy, po prostu
‫utworzę pięciu menedżerów, żadnych pracowników, dajcie im sekundę, to wszystko ustawi. Zasadniczo zaczynamy od
‫pięcio-węzłowego roju. Po prostu uruchomimy rejestr naprawdę szybko,
‫aby pokazać, że to prawie to samo, co poprzednio.
‫W porządku. Teraz mam pięć węzłów menedżera i jeśli zrobiłem węzeł docker ls, możesz po prostu zobaczyć, że mam pięć z
‫nich.
‫Więc, yay. Mamy rój. Po prostu uruchom rejestr, ale tym
‫razem
‫użyjemy usługi create i nazwijmy ją rejestrem.
‫Opublikujemy go ponownie, tak jak ostatnio, port 5000, a my
‫przejdziemy do rejestru obrazów.
‫Proszę bardzo.
‫Możemy wykonać rejestr PS usługi dokowania i mówi, że działa. W Play With Docker dostajemy ten fajny mały
‫przycisk, który pojawia się za każdym razem, gdy publikujemy aplikację internetową.
‫W rzeczywistości eksponuje port i podaje miły, przyjazny adres URL, dzięki któremu możemy przetestować tę aplikację internetową lub punkt
‫końcowy w sieci.
‫Ale wiesz w Rejestrze, w jego
‫katalogu głównym, to nic, nic nie jest zwracane poza HTTP 200.
‫Możemy jednak zrobić z jakimkolwiek rejestrem, w którym faktycznie możemy pójść i spojrzeć na katalog, który
‫zwróci prostą tablicę JSON.
‫Zauważysz, że jego repozytorium jest puste.
‫Mogliśmy to zrobić na wcześniejszym wykładzie, ale po prostu zagrajmy tutaj, ponieważ jesteśmy
‫w tym prostym rozwiązaniu z Play With Docker.
‫Pozwól mi zrobić to samo, kiedy robię pociąg do doku, jak przed światem cześć. Zamierzam teraz zrobić tag ponownie, więc zamierzamy
‫powiedzieć "tag hello world", a następnie zmienię nazwę lub ponownie otaguję na nowe
‫repozytorium 127. 0. 0. 1 5000,
‫zrobię pchnięcie do doku.
‫Pozwól mi to przybliżyć, aby łatwiej było nam to zobaczyć.
‫dokowanie do doku.
‫Potem zrobimy 127. 0. 0.
‫1 OK. Teraz popchnął to do naszego repozytorium. Sposób, w jaki naprawdę możemy
‫sprawdzić, naprawdę szybko, jest taki, że jeśli przejdziesz do tej innej karty, a odświeżę, zauważysz, że repozytorium pokazuje obecnie nazwę repozytorium, które jest dostępne.
‫Gdy dodamy do tego więcej, to faktycznie rozszerzymy tablicę i zobaczymy wszystkie z nich.
‫W tym momencie mógłbym zrobić tak jak wcześniej, uruchomić ten obraz, działałby dokładnie tak, jak się spodziewaliśmy i
‫skalowalibyśmy go. Aby udowodnić
‫tę kwestię, mogę wykonać dokowanie nginx.
‫Możemy uruchomić prosty
‫serwer WWW nginx, docker tag nginx,
‫a następnie dokować, popchnąć to
‫z powrotem do naszego rejestru.
‫Wtedy zobaczysz, że mam teraz dwa. Mam tam dwa repozytoria. Następnie, jeśli zrobiłem
‫usługę tworzenia dockerów, tak
‫jak
‫robimy to normalnie, mamy
‫zamiar zrobić nginx 80 80, ale tym razem zamierzam określić taki obraz.
‫Mówimy, że nie chcemy używać obrazu Docker
‫Hub, aby uruchomić usługę i chcemy z niej skorzystać.
‫Teraz dodamy kilka opcji.
‫Mam zamiar zrobić repliki 5, więc jeden nginx zacznie się w każdym węźle, a następnie
‫zrobimy nową opcję, która zaczęła pojawiać się w 17. 04 Wydaje mi się, że detach jest równy false, a to pozwoli nam zobaczyć,
‫jak działa polecenie w czasie rzeczywistym.
‫Zobaczysz, że to się przygotowuje, co oznacza, że w zasadzie pobierasz ten obraz
‫z rejestru do węzłów, a potem jest gotowy i działa.
‫Idziemy, skończymy.
‫Jeśli wyciągnę, zauważysz od góry, to pokazuje port 80, ponieważ jest to nowa usługa,
‫a zobaczysz, że mam ją tutaj i działa.
‫Co ciekawe, kiedy jesteś w roju, nie możesz użyć obrazu, który jest tylko w jednym
‫węźle, prawda?
‫Rój musi mieć możliwość pobierania obrazów ze wszystkich repozytoriów z rejestru,
‫do którego wszyscy mogą dotrzeć. Nie wspomniałem o tym w sekcji rój,
‫ale jest to ważna kwestia, ponieważ oznacza to, że nie można po prostu zbudować własnego wizerunku na poziomie lokalnym, np. Powiedzmy w
‫tym przypadku menedżerze1, a menedżer2 nie zamierza być w stanie przejść do menedżera1 i zdobyć go, prawda?
‫Wszyscy muszą pchać i ciągnąć z centralnego repozytorium gdzieś.
‫Ale ponieważ uruchomiłem rejestr jako usługę tutaj, wszyscy mogą wiedzieć, jak uzyskać dostęp do adresu 127 zero zero, a następnie
‫sieć routingu będzie faktycznie kierować je do właściwego kontenera, gdziekolwiek ten rejestr jest uruchomiony na jednym
‫z węzłów, a następnie to narysuje ten obraz nginx do wszystkich węzłów, ponieważ muszą tam
‫być.
‫Jeśli wykonałeś usługę dokowania ps nginx, zobaczysz, że w każdym węźle jest jeden, a
‫zobaczysz, że obraz, którego używa, pochodzi z naszego rejestru.
‫OK, więc to po prostu pokazuje, jak Swarm jest bardzo podobny do Docker Registry.
‫Na koniec wspomnieliśmy o tej nowej ciekawostce, że musisz upewnić się, że twoje obrazy, których
‫używasz w roju, są dostępne w jakimkolwiek rejestrze, w którym się znajdują.
‫Muszą być dostępne dla wszystkich węzłów. To powinno być oczywiste, prawda, ponieważ węzły nie
‫mogą dzielić się ze sobą obrazami. W rzeczywistości wszyscy muszą wyciągnąć je z rejestru, a więc
‫wszyscy muszą być w stanie do niego dotrzeć.
‫Tak się składa, że siatka routingu znacznie ułatwia to uruchamianie.
‫Podobnie jak w ostatnim małym ProTipie, jeśli nie musisz uruchamiać swojego własnego rejestru, może to być
‫fajne, wystarczy użyć jednego z hostowanych w Internecie.
‫Są zbędne.
‫Mają monitoring i wszystkie odpowiednie rzeczy związane z zarządzaniem pamięcią masową.
‫Zwykle, zwłaszcza jeśli robisz open source, większość
‫z nich jest darmowa.
‫Jeśli robisz to z powodów prywatnych i chcesz przechowywać prywatne obrazy, większość z nich to bardzo rozsądny koszt, mam
‫na myśli bardzo niski koszt przechowywania zdjęć.
‫Tak więc, niezależnie od tego, czy używasz AWS, Quay, Docker Hub, czy wielu opcji,
‫powiedziałbym, wypróbuj te i używaj tylko własnego rejestru, jeśli naprawdę masz jakieś, być może, wymaganie w trybie offline,
‫gdzie musi być dostępne bez Internetu lub jeśli istnieje tylko pewne ograniczenie bezpieczeństwa, że tak
‫naprawdę nie można używać żadnej platformy hostowanej. Ponieważ jest to po prostu jedna z tych rzeczy, gdzie jest to
‫narzędzie i jest wspaniale, kiedy możesz po prostu polegać na kimś innym, aby rozwiązać ten problem.
‫Mam więc nadzieję, że będziesz się z tym bawić i dobrze się bawić.
‫Teraz, gdy nie robisz tego wykładu, pamiętaj, aby posprzątać, aby zacząć od nowej lekcji
‫na następnym wykładzie.