‫Wcześniej rozmawialiśmy o pliku YAML Docker Compose iw tym wykładzie będziemy mówić
‫o linii poleceń compose. Wymagania dotyczące tego wykładu są jak reszta w tej sekcji,
‫w której naprawdę trzeba znać obrazy i kontenery oraz jak z nich korzystać i koncepcje wokół nich z wcześniejszych sekcji, tak
‫aby można było używać wszystkich tych wewnątrz komendy compose i YAML plik. Narzędzie wiersza polecenia Kompilacja
‫Dock jest w rzeczywistości oddzielne od narzędzia Docker.
‫W rzeczywistości jest to osobny plik binarny. Jeśli korzystasz z Docker dla systemu Windows lub Docker dla komputerów Macintosh,
‫w rzeczywistości jest dostarczany z tym pakietem.
‫Jeśli używasz także zestawu narzędzi w systemie Windows 7, wiąże się z nim.
‫Ale jeśli używasz Linuksa, musisz pobrać go osobno i możesz go pobrać na GitHub. com / docker / compose, ale możesz
‫też po prostu wyszukać go w Google, a w odnośnikach do tej sekcji pojawi
‫się link.
‫Ale powinienem powiedzieć bardzo szybko, że nie został zaprojektowany jako narzędzie klasy produkcyjnej.
‫Jest super idealny do lokalnego rozwoju i testowania rzeczy naprawdę szybko, co w przeciwnym razie może być skomplikowane,
‫aby wpisać kilka poleceń z wiersza poleceń. Dwa popularne polecenia, których używamy, będą
‫składnikami dokańczymi, co jest prawdopodobnie tym, co zamierzasz wpisać w 90% przypadków.
‫To punkt kompleksowej obsługi.
‫Jest to po prostu pojedyncze polecenie do wykonania wszystkiego w pliku komponowania, w tym tworzenie woluminów, tworzenie sieci,
‫uruchamianie wszystkich kontenerów ze wszystkimi opcjami konfiguracyjnymi. Następnie, aby oczyścić, gdy skończysz,
‫docker ułożyć, co wielu ludzi rzeczywiście zapomnieć zrobić, po prostu
‫oczyścić po tobie. Pozbędzie się kontenerów, usunie sieci i woluminy, które nie są już potrzebne.
‫Pozwala ci, za pomocą tych dwóch poleceń, szybko wskakiwać i wychodzić z różnych środowisk w celu rozwoju.
‫To tutaj naprawdę zwracam uwagę programistów, którzy są przyzwyczajeni do używania narzędzia Vagrant Up
‫i innych narzędzi do dostosowywania skomplikowanych środowisk, których potrzebują do rozwoju.
‫Kiedy pokażę im Docker Compose i plik do skomponowania oraz jak łatwo będzie go używać wraz
‫z plikiem Dockerfile, zacznie on klikać, że może to być lepszy sposób i bardziej niezawodny sposób na skonfigurowanie
‫ich środowisk.
‫Nie wymaga to czasu na ustawienie różnych
‫maszyn wirtualnych ani na złożoność zarządzania środowiskiem maszyny wirtualnej.
‫Aby dać ci odrobinę smaku, jeśli masz projekt, w którym miałeś typowy proces tworzenia nowych programistów, chodziło przede wszystkim o
‫nauczenie się, jak uzyskać odpowiednie narzędzia do ich systemu, i odpowiednie pobrane wirtualne maszyny oraz
‫odpowiednie dodatki i wszystkie rzeczy, które normalnie musieliby po prostu zbudować dla środowiska replikowanego,
‫przy pomocy Docker Compose, to tak proste,
‫jak klonowanie środowiska, w którym znajduje się plik do komponowania z jakiegoś repo, a następnie uruchamianie
‫polecenia tworzenia okna dokowanego.
‫To naprawdę może być takie proste.
‫Wskakujmy i bawmy się. Jestem w katalogu 2 przykładowego komponowania. Katalog compose sample 1 był
‫po prostu przykładami wizualnymi, które pokazaliśmy na ostatnim wykładzie.
‫Ale w tym przypadku będziemy w stanie go uruchomić i uzyskać szybki wydruk.
‫Po prostu zrobię komponowanie dockera.
‫Cóż, właściwie zanim to zrobimy, pokażę ci, co to jest.
‫Ma dwie usługi lub dwa kontenery, a pierwszy to serwer Nginx, który w tym przypadku jest
‫skonfigurowany jako proxy.
‫I to będzie słuchanie na moim porcie 80 na mojej lokalnej maszynie.
‫Zauważysz, że jest tam polecenie woluminu, w którym faktycznie zrobiłem bind mount do pliku w tym katalogu o nazwie
‫plik konfiguracyjny nginx i jest to naprawdę bardzo prosty mały plik.
‫Niekoniecznie ważne jest, abyśmy wiedzieli, jak ten plik działa. Pokazuje tylko, jak w tym
‫przypadku faktycznie robię plik w moim lokalnym środowisku. Załóżmy, że ten katalog jest repozytorium
‫Git, które przechowuje dla mnie te pliki konfiguracyjne. Pozwala mi to zmapować ten plik do kontenera, a ja na samym
‫końcu zobaczysz, że to "ro", co oznacza tylko do odczytu, co oznacza, że nie mogę go zmienić w kontenerze.
‫To niekoniecznie jest wymagane tutaj. Chciałem ci tylko pokazać, że
‫tak właśnie postąpisz w tym przypadku. Ten plik konfiguracyjny mówi Nginxowi,
‫"zamiast być serwerem
‫WWW, chciałbym, abyś był odwrotnym proxy i zasiadł przed innym serwerem", który w tym
‫przypadku wywołuje nasz serwer sieciowy, z jego usługą nazwa i uruchamia serwer Apache 2, który jest obrazem httpd
‫z oficjalnego repozytorium obrazów w Docker Hub.
‫Możesz też zobaczyć na górze, podałem tutaj wersję. Tak bym to zrobił.
‫Wewnątrz linii obrazu.
‫Tak więc, co powinno się zdarzyć, gdy napiszę ten doker do komponowania, powinien on uruchomić oba kontenery. Powinien stworzyć prywatną sieć
‫dla tych dwóch.
‫Automatycznie zwiąże on ten plik.
‫Otworzy port i zacznie wyrzucać dzienniki na mój ekran.
‫Zobaczysz, jak tam, powiedział, "tworzenie tych dwóch pojemników. "To faktycznie tworzy
‫sieć.
‫Zauważysz, że w moim pliku nie określiłem obszaru sieci ani obszaru woluminów, ponieważ nie są one
‫faktycznie wymagane.
‫Są potrzebne tylko wtedy, gdy muszę wykonać pewne niestandardowe czynności w sieci, np. Zmienić domyślne
‫adresy IP lub zmienić używany sterownik sieciowy.
‫Lub w przypadku wielkości, mogę utworzyć nazwane woluminy lub użyć innego sterownika woluminu, a my zajmiemy się
‫tym wszystkim później w zaawansowanych sekcjach.
‫Tylko dlatego, że wiesz, jak proste mogą być te pliki.
‫Normalnie nie potrzebujesz tego wszystkiego.
‫Te funkcje są tam, jeśli ich potrzebujesz, ale zazwyczaj te bardzo proste, małe polecenia, takie jak ta,
‫pozwolą ci działać.
‫Co ja zrobiłem? To jest teraz mój serwer Apache i mój serwer Nginx.
‫Zauważysz, że dzienniki są tutaj rzeczywiście kolorowe.
‫To jest schludna funkcja Compose, która niekoniecznie musi wyjść z pudełka, ponieważ Docker
‫jest to, że będzie on rejestrował wszystkie kontenery, które są uruchomione na ekranie na pierwszym planie.
‫Zawsze mogę zrobić to samo, co robię z Dockerem i uruchomić dokowanie do
‫-d, co spowoduje uruchomienie go w tle. Ale miło jest zobaczyć, kiedy tworzę lub testuję lokalnie, że
‫mam swoje logi na ekranie.
‫Jeśli przejdę do przeglądarki, a następnie przejdę do localhost, zobaczysz, że jest napisane: "Działa. "Właściwie to odpowiada
‫serwer Apache, a nie serwer Nginx.
‫Ruch faktycznie przechodzi przez serwer proxy odwrotnego Nginx.
‫Powtarza ruch do serwera Apache. Serwer Apache odpowiada domyślnym podstawowym
‫plikiem HTML, ponieważ nic nie zmieniliśmy.
‫Wtedy Nginx powtarza to do mnie.
‫A więc to twój podstawowy serwer WWW, konfiguracja proxy sieci.
‫Możesz powiedzieć, że ruch trafił ich obu. W rzeczywistości działają przez
‫proxy, ponieważ
‫proxy ma w rzeczywistości inny kolor. Dzienniki wypompowują się tutaj z losowym kolorem dla każdego kontenera w mojej konfiguracji, dzięki
‫czemu mogę łatwo zobaczyć, co się dzieje.
‫Jeśli uderzę kilka razy, pokażą się ruch. Następnie trafia najpierw na serwer proxy, a
‫następnie serwer sieciowy.
‫Jeśli chciałem to zatrzymać, uderzyłem Control c, aby zatrzymać komponowanie na moim ekranie.
‫Mogłem uruchomić go ponownie z -d, aby uruchomić go w tle.
‫Możesz zobaczyć, że mogę ją odświeżyć i nadal tam jest. Mogę wykonać dzienniki komponowania dockera, aby zobaczyć te same wyniki dzienników,
‫które widziałem jakiś czas temu.
‫Wiele komend, do których można się przyzwyczaić w Dockerze, znajduje się również w kompozycji Docker. Naprawdę to, co właśnie
‫robi Compose, to rozmowa z API Docker w
‫tle w imieniu interfejsu Docker CLI. To trochę jak zamiennik dla interfejsu Docker CLI, który wciąż rozmawia
‫z interfejsem API serwera Docker w backendu.
‫Oczywiście, świetna pomoc tutaj, doker komponuje pomoc, pokazuje mi wszystkie polecenia, które mogę uruchomić.
‫Wiele z nich wygląda naprawdę znajomo, ponieważ są one odpowiednikiem polecenia
‫docker, tylko za pomocą kontekstu konfiguracji pliku do komponowania.
‫Chcę to wszystko wyczyścić, ponieważ wciąż działają. Mogę zrobić tutaj dokowanie psota, które pokaże mi, że
‫oba moje pojemniki działają.
‫Mogę utworzyć komponent u góry okna dokera, aby wyświetlić listę wszystkich działających w nim usług w
‫ładnym formacie wyjściowym.
‫To fajnie.
‫W końcu mogę zrobić doker, żeby się zatrzymać i posprzątać moje rzeczy, które właśnie zacząłem.
‫Zobaczysz, że to mi mówi, co tam jest zrobione. Oczyścić wszystko.
‫Świetnie.
‫To tylko mały smak.
‫Będziemy używać Docker Komponować wiele przez resztę tego kursu na
‫potrzeby rozwoju lokalnego i testowania. Następnie będziemy nadal używać plików Docker Compose, gdy
‫przejdziemy do kwestii związanych z produkcją, dotyczących wdrażania skomplikowanych środowisk za pomocą prostego pliku YAML.