Powrót do bloga

Instalacja Docker Compose na CentOS 7

Instalacja Docker Compose na CentOS 7

Dokeryzacja na nowo zdefiniowała proces wdrażania i automatyzacji w branży oprogramowania. Od momentu powstania zespół Docker nieustannie dąży do tego, aby automatyczne wdrażanie przebiegało bezproblemowo. Technologia konteneryzacji nie tylko umożliwia szybkie tworzenie aplikacji i wydajność, ale także oszczędza czas i żmudny wysiłek. Bezkonkurencyjne funkcjonalności, takie jak orkiestracja, definiowanie i uruchamianie aplikacji wielokontenerowych, sprawiają, że Docker jest ulubionym wyborem programistów.

Kontenery i obrazy Docker

Zanim zagłębisz się w dalsze poznawanie Dockera, warto odświeżyć podstawy. Zrozumienie, jak działa Docker, może być trudne, jeśli nie masz z nim żadnego doświadczenia. W tej sekcji zdefiniujemy kilka pojęć, które są niezbędne dla początkujących. Jeśli uważasz, że znasz te pojęcia, możesz je pominąć i przejść do następnej sekcji. Możesz również zapoznać się z naszym kompleksowym przewodnikiem, który wyjaśnia podstawowe pojęcia związane z Dockerem.

  • Obrazy Docker

Obrazy Docker to zestaw plików tylko do odczytu. Po utworzeniu obrazów Docker nie można ich modyfikować, choć możliwe jest ich usunięcie. Używamy obrazu Docker do tworzenia jednego lub więcej kontenerów Docker zgodnie z naszymi potrzebami. Aby sprawdzić liczbę obrazów uruchomionych w systemie, użyj polecenia:

Podczas pobierania obrazów z odległego rejestru, takiego jak Docker Hub, pobierasz pliki i foldery. Aby pobrać obraz, użyj polecenia:

  • Kontenery Docker

Obrazy Docker są schematem dla kontenerów Docker. Technicznie rzecz biorąc, kontener Docker jest instancją obrazu Docker. Wyobraź sobie, że jeśli obraz Docker jest jak rodzic, to kontener Docker jest dzieckiem. W przeciwieństwie do obrazów Docker, które tworzy się raz, z jednego obrazu można utworzyć wiele kontenerów. Aby sprawdzić listę obrazów uruchomionych w systemie, użyj polecenia:

Aby pobrać kontener, użyj następującego polecenia:

  • Jak działają obrazy i kontenery Docker

Obrazy i kontenery Docker współpracują ze sobą, aby uwolnić pełen potencjał Dockera. Pojedynczy kontener jest budowany na podstawie obrazu Docker za pomocą polecenia run. Podczas tworzenia kontenera Docker tworzona jest nowa warstwa znana jako warstwa kontenera (Container Layer). Nowo utworzona warstwa zawiera aplikację i jej zależności. Każdy tworzony kontener ma inną warstwę kontenera do odczytu/zapisu, a wszelkie zmiany wprowadzone w kontenerze Docker są automatycznie odzwierciedlane w warstwie kontenera. Pamiętaj, że jeśli zdecydujesz się usunąć kontener, utracisz również warstwę kontenera.

Przywitaj się z Docker Compose

Docker Compose to narzędzie do zarządzania kontenerami, które pozwala konfigurować i orkiestrować wszystkie kontenery Docker w jednym pliku YAML. Uruchamianie, zatrzymywanie oraz tworzenie powiązań międzykontenerowych i wolumenów jest znacznie łatwiejsze dzięki temu narzędziu.

  • Co robi Docker Compose?

Mówiąc najprościej, Docker Compose ułatwia skomplikowane zadania, eliminując konflikty i problemy organizacyjne. Pozwala użytkownikom centralnie zarządzać różnymi kontenerami Docker. Innymi słowy, zamiast umieszczać wszystkie usługi w jednym dużym kontenerze, Docker Compose dzieli usługę na wiele mniejszych usług, dzięki czemu użytkownicy mogą bez trudu uzyskiwać do nich dostęp i nimi zarządzać.

W tym przewodniku przeprowadzimy Cię przez kroki instalacji aktualnej wersji Docker Compose do zarządzania aplikacjami wielokontenerowymi na systemie CentOS 7. Omówimy również kilka podstawowych poleceń niezbędnych do pomyślnego korzystania z tego oprogramowania.

  • Jak używać Docker Compose

Korzystanie z Docker Compose jest niezwykle łatwe, nawet dla początkujących. Przyjrzyjmy się trzyetapowemu procesowi korzystania z Docker Compose:

1. Budowanie: Najpierw zbuduj obrazy w pliku Dockerfile zgodnie z potrzebami swojego projektu lub pobierz je z rejestru.

2. Definiowanie: Następnie musisz zdefiniować wszystkie usługi składowe w pliku compose.yml.

3. Uruchamianie: Po zdefiniowaniu komponentów nadszedł czas na ich uruchomienie za pomocą polecenia docker-compose.

Wymagania wstępne

Zanim przejdziemy do instalacji Docker Compose na serwerze CentOS, upewnij się, że posiadasz:

Wszystko gotowe. Następnie postępuj zgodnie z poniższymi krokami, aby zainstalować Docker Compose na CentOS 7.

Krok 1: Instalacja Docker Compose

Aby uzyskać najnowszą wersję Docker Compose, postępuj zgodnie z instrukcjami w dokumentacji Dockera i pobierz pliki binarne z repozytorium GitHub Docker’a. Sprawdź, czy posiadasz najnowszą wersję oprogramowania, uruchamiając poniższe polecenie:

Aby uruchomić plik binarny, ustaw poniższe uprawnienia:

Następnie sprawdź wersję, aby upewnić się, czy instalacja przebiegła pomyślnie:

Poniższy kod wyświetli zainstalowaną wersję:

docker-compose --version

Możesz następnie uruchomić przykład “Hello World”, korzystając z zainstalowanego Docker Compose.

Krok 2: Użycie Docker Compose do uruchomienia kontenera

W Docker Hub, publicznym rejestrze Dockera, znajduje się obraz “Hello World”, który może posłużyć do celów demonstracyjnych i testowych. Pokazuje on, jak uruchomić kontener za pomocą Docker Compose przy minimalnej konfiguracji. Najpierw musisz utworzyć katalog dla naszego pliku YAML:

Następnie przejdź do tego katalogu:

Następnie, używając preferowanego edytora tekstu, wygeneruj plik YAML. W tym poradniku użyjemy Vi:

Naciśnij i, aby przejść do trybu wprowadzania (insert), a następnie wpisz to do pliku:

Pierwsza linia zostanie włączona do nazwy kontenera. Druga linia instruuje program, którego obrazu powinien użyć do utworzenia kontenera. docker-composeup wyszuka lokalny obraz o nazwie hello-world, aby sprawdzić, czy jest dostępny po wpisaniu polecenia. Aby wyjść z trybu wprowadzania, naciśnij ESC. Następnie wpisz :x i naciśnij ENTER, aby zapisać i zamknąć plik. Polecenie docker images może być użyte do ręcznego sprawdzenia obrazów na Twoim komputerze:

Gdy nie ma żadnych lokalnych obrazów, pojawiają się tylko nagłówki kolumn:

Docker Compose on CentOS 6

Aby utworzyć kontener, uruchom to polecenie, będąc nadal w katalogu /hello-world:

Gdy uruchamiasz to polecenie po raz pierwszy i nie ma lokalnego obrazu o nazwie hello-world, zostanie on pobrany z repozytorium Docker Hub:

sudo docker-compose up

Aby upewnić się, że instalacja działa, Docker Compose pobiera obraz, buduje kontener, podłącza go i wykonuje program hello:

hello program

Następnie wyświetlany jest opis tego, co zostało zrobione:

Docker Compose on CentOS 3

Gdy hello zakończy swoje zadanie, kontener zostanie wyłączony, a polecenie nie będzie już w nim uruchomione. Podczas przeglądania aktywnych procesów zostaną wyświetlone nagłówki kolumn. Jednak kontener hello-world nie znajdzie się na liście, ponieważ obecnie nie działa:

sudo docker ps

Aby zobaczyć wszystkie kontenery, a nie tylko te aktualnie uruchomione, użyj flagi -a:

Docker Compose 2

Skoro wypróbowałeś już uruchamianie kontenera, możesz przejść do nauki podstawowych poleceń Docker Compose.

Krok 3: Polecenia Docker Compose

Aby ułatwić Ci rozpoczęcie pracy z Docker Compose, w tej sekcji omówimy podstawowe polecenia dostarczane przez narzędzie docker-compose. docker-compose to polecenie, które działa w oparciu o poszczególne katalogi. Tworząc jeden katalog dla każdego kontenera i jeden plik docker-compose.yml na katalog, możesz uruchomić wiele grup kontenerów Docker na tym samym komputerze.

Do tej pory uruchamiałeś Docker Compose samodzielnie. Możesz go wyłączyć, naciskając Ctrl-C. Umożliwia to wyświetlanie komunikatów debugowania w oknie terminala. Jednak w środowisku produkcyjnym zaleca się uruchamianie docker-compose jako usługi. Opcja -d może być użyta jako prosty sposób na osiągnięcie tego:

Teraz docker-compose przechodzi w tło. Twoją grupą kontenerów Docker (zatrzymanych lub uruchomionych) można zarządzać za pomocą następującego polecenia:

The Stan kontenera zostanie zgłoszony jako Exited, jeśli jest on zatrzymany, jak pokazano w poniższym przykładzie:

Docker Compose on CentOS 5

Aktualnie uruchomiony kontener wyświetli:

Możesz zatrzymać wszystkie uruchomione kontenery Docker w tym samym katalogu, w którym znajduje się plik docker-compose.yml, którego użyłeś do uruchomienia grupy Docker:

Note: Jeśli musisz wymusić zamknięcie w bardziej zdecydowany sposób, docker-compose kill jest również dostępne.

W niektórych przypadkach kontenery Docker mogą zapisywać swoje stare dane wewnątrz. Użyj polecenia rm, aby usunąć wszystkie kontenery z grupy kontenerów, jeśli chcesz zacząć od nowa:

Uruchomienie któregokolwiek z tych poleceń z innego katalogu niż ten, w którym znajduje się kontener Docker i plik .yml, spowoduje wyświetlenie komunikatu o błędzie:

W tej sekcji omówiliśmy podstawy manipulowania kontenerami za pomocą Docker Compose. Jak wspomniano, w kolejnej sekcji możesz uzyskać dostęp do systemu plików Dockera i uruchamiać polecenia z wiersza poleceń wewnątrz kontenera, jeśli potrzebujesz dodatkowej kontroli nad swoimi kontenerami.

Step 4: Access the Docker Container Filesystem

Możliwe jest uruchomienie wiersza poleceń w kontenerze i uzyskanie dostępu do systemu plików kontenera za pomocą docker exec, który jest narzędziem wiersza poleceń. Jako przykład uruchom “Hello World” i zobacz, ile czasu zajmuje wykonanie polecenia docker exec. Na potrzeby tego samouczka można wykorzystać obraz Nginx z Docker Hub. Utwórz nowy katalog o nazwie nginx i przejdź do niego:

Powinieneś teraz mieć plik docker-compose.yml, który możesz otworzyć w edytorze tekstu:

Następnie dodaj do pliku następującą zawartość:

Czas zamknąć aplikację. Aby uruchomić kontener Nginx w tle, użyj następującego polecenia:

Docker Compose on CentOS 1

Docker Compose pobierze obraz Nginx i uruchomi kontener w tle. Aby kontynuować, musisz podać CONTAINER ID.  Możesz wyświetlić wszystkie aktualnie uruchomione kontenery za pomocą następującego polecenia:

Zobaczysz następujące informacje:

 Docker Compose on CentOS 4

Jeśli chcesz zmodyfikować system plików wewnątrz tego kontenera za pomocą docker exec, użyjesz unikalnego identyfikatora kontenera (w tym przypadku f139d0d78ca7) do uruchomienia powłoki wewnątrz kontenera:

sudo docker exec -it

Interaktywny terminal można otworzyć za pomocą opcji -t , podczas gdy /bin/bash udostępnia kontenerowi powłokę bash. Oto znak zachęty powłoki bash, który zobaczysz dla tego kontenera:

Wewnątrz kontenera znajdziesz wiersz poleceń. Ponowne uruchomienie kontenera nadpisze wszelkie wprowadzone zmiany, chyba że pracujesz w katalogu, który został zapisany jako część wolumenu danych. Jeśli jesteś przyzwyczajony do pracy z wierszem poleceń systemu Linux, powinieneś wiedzieć, że większość obrazów Docker jest tworzona przy użyciu najbardziej podstawowych instalacji systemu Linux.

Podsumowanie

Przeprowadziliśmy Cię przez kroki instalacji aktualnej wersji Docker Compose do zarządzania aplikacjami wielokontenerowymi na systemie CentOS 7. Zdolność Docker Compose do jednoczesnego uruchamiania i wyłączania dużej liczby kontenerów jest imponująca. Przejście od szablonów do aplikacji zajmuje minuty. Dlatego, jeśli Twoja praca wiąże się z uruchamianiem wielu kontenerów jednocześnie, pozostanie przy Docker Compose jest świetną opcją. Jednak nie jest to rozwiązanie uniwersalne. Możesz również znaleźć lepsze opcje, w zależności od swoich konkretnych potrzeb, na przykład Kubernetes.

Aby dalej odkrywać możliwości Docker Compose, możesz zapoznać się z tymi poradnikami z naszego bloga:

Miłego korzystania!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.