Database
 sql >> Baza danych >  >> RDS >> Database

Korzystanie z platformy Docker w usłudze Azure Container Service z klastrem Swarm

W pierwszym artykule „Tworzenie klastra Docker Swarm w usłudze Azure Container Service” omówiliśmy tworzenie klastra Docker Swarm w usłudze Azure Container Service (ACS). Każda maszyna wirtualna (master lub agent) ma uruchomiony Docker, gdy tworzony jest rój. W tym artykule kontynuacyjnym omówimy korzystanie z platformy Docker w roju utworzonym w usłudze Azure Container Service. Omówimy użycie zarówno samodzielnego Dockera, jak i usługi trybu Docker Swarm. Ten artykuł ma następujące sekcje:

  • Ustawianie środowiska
  • Informacje w oknie dokowanym listy
  • Uruchamianie obrazu Docker Hello World
  • Uruchamianie obrazu Docker Nginx
  • Wyświetlanie kontenerów Dockera
  • Dostęp do kontenera Nginx Docker w przeglądarce
  • Usuwanie kontenera Dockera
  • Inicjowanie trybu Docker Swarm
  • Tworzenie usługi Docker
  • Lista usług Dockera
  • Wyświetlanie listy zadań usługi Docker
  • Wyświetlanie kontenerów Docker dla usługi Docker
  • Eksplorowanie dzienników generowanych przez kontener usługi Docker
  • Wniosek

Ustawianie środowiska

Użyj tego samego środowiska, co w pierwszym artykule „Tworzenie klastra Docker Swarm w usłudze Azure Container Service”. Utwórz klaster Swarm na ACS, jak omówiono w artykule. W tym artykule użyjemy klastra Swarm składającego się z trzech węzłów głównych i jednego węzła agenta, aby uruchomić samodzielny kontener Docker i usługę trybu Docker Swarm.

Informacje w oknie dokowanym listy

Uruchom Cloud Shell zgodnie z opisem w artykule „Tworzenie klastra Docker Swarm w usłudze Azure Container Service”. Połącz się z główną maszyną wirtualną Swarm przy użyciu prywatnego klucza SSH RSA, nazwy użytkownika i publicznego adresu IP urządzenia głównego, jak omówiono również we wcześniejszym artykule. Polecenie SSH do połączenia z główną maszyną wirtualną jest następujące; klucz prywatny SSH RSA, nazwa użytkownika i publiczny adres IP będą różne dla różnych użytkowników.

ssh -i /home/deepak/.ssh/id_rsa -p 2200 przykł[email protected]

Zostanie nawiązane połączenie i wyświetlony zostanie wiersz poleceń dla głównej maszyny wirtualnej.

[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200 [email protected] w Ubuntu 14.04.4 LTS (GNU/Linux 3.19.0-65-generic x86_64) * Dokumentacja:https://help.ubuntu.com/ Informacje o systemie na wtorek 10 października 22:40:17 UTC 2017 Obciążenie systemu:0,27 Procesy:131 Wykorzystanie /:4,2% z 28,80 GB Zalogowani użytkownicy:0 Wykorzystanie pamięci :2% Adres IP dla eth0:172.16.0.5 Użycie wymiany:0% Adres IP dla docker0:172.17.0.1 Wykresuj te dane i zarządzaj tym systemem na:https://landscape.canonical.com/ Uzyskaj wsparcie dla chmury dzięki Ubuntu Advantage Cloud Gość:http://www.ubuntu.com/business/services/cloud Dostępna jest nowa wersja „16.04.3 LTS”. Uruchom „do-release-upgrade”, aby go zaktualizować. Ostatnie logowanie:wtorek 10 października 22:40:17 2017 z 40.78.30.37

W roju udostępnionym w artykule „Tworzenie klastra Docker Swarm w usłudze Azure Container Service” skonfigurowano trzy węzły główne. Liczba głównych maszyn wirtualnych może wynosić 1, 3 lub 5. W przypadku uruchamiania wielu głównych maszyn wirtualnych polecenie SSH do łączenia się z każdą z głównych maszyn wirtualnych jest takie samo, z wyjątkiem portu SSH, który wynosi 2200 dla 1 mastera, 2201 dla 2 master, 2202 dla 3 master, 2203 dla 4 master i 2204 dla 5 master. W przypadku trzech głównych maszyn wirtualnych używane porty SSH to 2200, 2201 i 2202. Aby połączyć się z 2 maszynami głównymi, polecenie SSH wygląda następująco:

[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2201 [email protected]

A polecenie SSH, aby połączyć się z 2 masterem, wygląda następująco:

[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2202 [email protected]

Demon Docker działa w 172.16.0.5:2375 . Aby wyświetlić informacje dotyczące całego systemu, uruchom informacje dokowane Komenda. Dane wyjściowe (częściowe) polecenia są wymienione:

[email protected]:~$ docker -H 172.16.0.5:2375 infoContainers:0 Uruchomione:0 Wstrzymane:0 Zatrzymane:0Obrazy:0Rola:primaryStrategy:spreadNodes:1 swarm-agent-D50F2361000001:10.0.0.5:2375Is Menedżer:false Wersja jądra:3.19.0-65-generic System operacyjny:linuxArchitecture:amd64CPU:2 Całkowita pamięć:7.145GiB

Uruchamianie obrazu Docker Hello World

Każda z maszyn wirtualnych w ACS Swarm jest hostem Docker, a samodzielny kontener Docker może być uruchamiany na dowolnej maszynie wirtualnej Swarm. Jako przykład uruchom obraz Dockera „hello-world” na głównej maszynie wirtualnej.

[email protected]:~$ docker run hello-worldNie można znaleźć obrazu 'hello-world:latest' lokalnienajnowsze:Pobieranie z biblioteki/hello-world5b0f327be733:Pobieranie zakończoneDigest:sha256:b2ba691d8aac9e5ac3644c0788e3d87582f1fd dla obrazu world:latestHello from Docker!Ten komunikat wskazuje, że Twoja instalacja działa poprawnie.Aby wygenerować ten komunikat, Docker wykonał następujące kroki:1. Klient Docker skontaktował się z demonem Docker. 2. Demon Docker pobrał obraz „hello-world” z Docker Hub. 3. Demon Docker utworzył nowy kontener z tego obrazu, który uruchamia plik wykonywalny, który generuje dane wyjściowe, które aktualnie czytasz. 4. Demon Docker przesłał dane wyjściowe do klienta Docker, który wysłał je do twojego terminala. Aby spróbować czegoś bardziej ambitnego, możesz uruchomić kontener Ubuntu za pomocą:$ docker run -it ubuntu bashUdostępnij obrazy, zautomatyzuj przepływy pracy i nie tylko za pomocą bezpłatny identyfikator platformy Docker:https://cloud.docker.com/Aby uzyskać więcej przykładów i pomysłów, odwiedź:https://docs.docker.com/engine/userguide/[email protected]:~$

Obraz Dockera witaj-świecie działa na głównej maszynie wirtualnej Swarm, a nie na Swarm. Główna maszyna wirtualna to tylko jedna z maszyn wirtualnych w roju. Rój Dockerów nasłuchuje punktu końcowego 172.16.0.5:2375. Aby uruchomić kontenery Dockera w Swarm, należy podać punkt końcowy Swarm, co omówimy w następnej sekcji. Gdy kontener Docker jest uruchamiany w Swarm, główny Swarm przypisuje agenta Swarm do uruchamiania kontenera Docker.

Uruchamianie obrazu Docker Nginx

Witaj-świecie Obraz platformy Docker użyty w poprzedniej sekcji jest bardzo podstawowym obrazem platformy Docker z niewielką ilością dockeryzacji i po prostu wyświetla komunikat. W tej sekcji uruchomimy samodzielny kontener z obrazem Docker nginx dla serwera Nginx. Poniższe polecenie tworzy kontener Dockera o nazwie hello-nginx i ujawnia port 80 na hoście.

uruchom docker --name hello-nginx -d -p 80:80 nginx

Dane wyjściowe z przebiegu dockera polecenie jest wymienione:

[email protected]:~$ docker run --name hello-nginx -d -p 80:80 nginxNie można znaleźć obrazu 'nginx:latest' lokalnielatest:Pobieranie z biblioteki/nginxbc95e04b23c0:Pobieranie zakończone110767c6efff:Pobieranie kompletnef081e0c4df75:Pobieranie CompleteDigest:sha256:004ac1d5e791e705f12a17c80d7bb1e8f7f01aa7dca7deee 6e65a03465392072Status:Pobrano nowszy obraz dla nginx:latestb3679edba090ff41482f3754b4d852d4c465985eb50> 

Poprzednie przebieg dokera polecenie uruchamia kontener Dockera na głównej maszynie wirtualnej Swarm. Uruchomienie dokowane polecenie można uruchomić w roju, podając adres IP punktu końcowego roju i port w następujący sposób:

[email protected]:~$ docker -H 172.16.0.5:2375 run --name hello-nginx -d -p 80:80 nginxddcbc335988f7b5dba762b436bfde4c22d01144d67313813ba140a5391bac8df

Wyświetlanie kontenerów Dockera

Wyświetl kontenery platformy Docker na głównej maszynie wirtualnej za pomocą docker ps Komenda. Hello-nginx Kontener Dockera zostanie wyświetlony. Kontener menedżera roju, który nie jest tworzony przez użytkownika, ale jest kontenerem systemowym, jest tworzony podczas tworzenia roju.

Uwaga redaktora: Należy pamiętać, że wiele z poniższych kodów jest zbyt szerokich, aby można je było poprawnie wyświetlić. Przewiń pole kodu w prawo, aby zobaczyć całą listę.
[email protected]:~$ docker psCONTAINER ID OBRAZ POLECENIE UTWORZENIE STANU NAZWY PORTÓWSb3679edba090 nginx "nginx -g 'daemon..." 3 sekundy temu Up 2 sekundy 0.0.0.0:80->80/tcp hello-nginxf82ebb6efa4 swarm:1.1.0 "/swarm management --r..." 5 minut temu Wyżej 3 minuty 0.0.0.0:2375->2375/tcp container_swarm_1

Kontenery Dockera w punkcie końcowym Swarm mogą być wymienione w następujący sposób:

[email protected]:~$ docker -H 172.16.0.5:2375 ps -aID KONTENERA IMAGE POLECENIE UTWORZONY STAN NAZWY PORTÓWSddcbc335988f nginx "nginx -g 'daemon..." 36 sekund temu Do 35 sekund 10.0.0.5:80->80/tcp swarm-agent-D50F2361000001/hello-nginx

Kontener Docker działa na agencie Swarm, jak wskazuje nazwa kontenera Docker swarm-agent-D50F2361000001/hello-nginx .

Dostęp do kontenera Nginx Docker w przeglądarce

Jak wspomniano wcześniej, gdy kontener Dockera jest uruchamiany w Swarm przy użyciu punktu końcowego Swarm, master Swarm planuje kontener na jednym z agentów Swarm w Swarm. Aby uzyskać dostęp do serwera Nginx działającego w kontenerze Docker w punkcie końcowym Swarm, należy użyć publicznego adresu IP agenta Swarm. Rój, którego użyliśmy, ma tylko jednego agenta Rój. Publiczny adres IP agenta Swarm można uzyskać z listy zasobów, jak pokazano na rysunku 1.


Rysunek 1: Publiczny adres IP agenta roju

Możesz też kliknąć Load balancer agenta Swarm w sekcji Zasoby , jak pokazano na rysunku 2.


Rysunek 2: System równoważenia obciążenia agenta roju

Na stronie szczegółów agenta Swarm uzyskaj adres IP (patrz Rysunek 3).


Rysunek 3: Adres IP agenta roju

Adres IP można również uzyskać ze strony szczegółów modułu równoważenia obciążenia agenta Swarm, jak pokazano na rysunku 4.


Rysunek 4: Publiczny adres IP agenta Swarm na stronie Load Balancer

W przeglądarce na komputerze lokalnym przejdź do publicznego adresu IP agenta Swarm. Zostanie wyświetlona strona powitalna serwera Nginx, jak pokazano na rysunku 5.


Rysunek 5: Wywoływanie serwera Nginx w przeglądarce

Usuwanie kontenera Dockera

Aby usunąć kontener Docker, uruchom docker rm Komenda. Nie można usunąć działającego kontenera Docker. Najpierw zatrzymaj kontener Dockera hello-nginx bieganie po roju.

[email protected]:~$ docker -H 172.16.0.5:2375 zatrzymaj hello-nginxhello-nginx

Następnie zatrzymany kontener można usunąć za pomocą docker rm .

[email protected]:~$ docker -H 172.16.0.5:2375 rm hello-nginxhello-nginx

Inicjowanie trybu Docker Swarm

Jak omówiono wcześniej, Azure Container Service Swarm nie ma domyślnie włączonego trybu Swarm. Tryb Swarm należy zainicjować za pomocą docker swarm init polecenie.

[email protected]:~$ docker swarm init --advertise-addr 52.176.1.213 Zainicjowano rój:bieżący węzeł (ia4uj7431stu8y0j5h2yvdp27) jest teraz menedżerem.

Aby dodać pracownika do tego roju, uruchom następujące polecenie:

Docker swarm join --tokenSWMTKN-1-5ksj7uqccgv1vnnmie09qmt191ldpupof4ihg4vhm083c20xsh -6uyq5653uo62e521bcoatzyyz52.176.1.213:2377

Aby dodać menedżera do tego roju, uruchom „menedżer łączenia tokenów roju docker” i postępuj zgodnie z instrukcjami.

Wymień węzły trybu roju z węzłem dokowanym ls Komenda. Węzeł menedżera roju zostanie wyświetlony na liście.

[email protected]:~$ docker node lsID NAZWA HOSTA STATUS STATUS MENEDŻERA DOSTĘPNOŚCIia4uj7431stu8y0j5h2yvdp27 * swarm-master-D50F2361-0 Ready Active Leader

Tworzenie usługi Docker

Po zainicjowaniu trybu Docker Swarm utwórz usługę Docker za pomocą Docker service create Komenda. Jako przykład utwórz usługę Docker składającą się z dwóch replik przy użyciu obrazu Docker alpine i pinguj docker.com.

[email protected]:~$ usługa dokera create--replicas 2 --name helloworld alpine ping docker.comtg1ywqiyei3jw9prco6890ol1

Jako inny przykład utwórz usługę Docker z obrazem Docker tutum/hello-world i udostępnij usługę na hoście na porcie 8080.

[email protected]:~$ usługa docker utwórz> --name hello-world> --publish 8080:80> --replicas 2> tutum/hello-world3e38c1595cddg0ckmoyasrnnu

Lista usług Dockera

Wyświetl listę usług Docker za pomocą usługi Docker ls Komenda. Wyświetlone zostaną dwie usługi utworzone w poprzedniej sekcji.

[email protected]:~$ usługa dokera lsID NAZWA TRYB REPLIKI OBRAZ PORTS3e38c1595cdd hello-world replikowane 2/2 tutum/hello-world:latest *:8080->80/tcptg1ywqiyei3j helloworld replikowane 2/2 alpejski:najnowsze

Wyświetlanie listy zadań usługi Docker

Wymień zadania usługi Docker dla helloworld usługa oparta na obrazie Dockera alpine .

[email protected]:~$ usługa dokera ps helloworldID NAZWA WĘZEŁ OBRAZU POŻĄDANY STAN BIEŻĄCY STAN BŁĄD PORTS0mal82mskbge helloworld.1 alpine:latest swarm-master-D50F2361-0 Działa 33 sekundy agoiqz0bqkldxs2 al helloworld master-D50F2361-0 Biega Biega 32 sekundy temu

Wymień zadania usługi Docker dla hello-world usługa oparta na tutum/hello-world Obraz Dockera.

[email protected]:~$ usługa dokera ps hello-worldID NAZWA WĘZEŁ OBRAZU POŻĄDANY STAN BIEŻĄCY STAN BŁĄD PORTSyok48ja4o835 hello-world.1 tutum/hello-world:latest swarm-master-D50F2361-0 Uruchomiony Działa 38 sekund agox5tvcugl hello-world.2 tutum/hello-world:latest swarm-master-D50F2361-0 Bieganie Bieganie 38 sekund temu

Wyświetlanie kontenerów platformy Docker dla usługi Docker

Kontenery Docker dla usługi Docker na hoście Docker w roju mogą być wymienione z docker ps polecenie.

[email protected]:~$ docker psID KONTENERA OBRAZ POLECENIE UTWORZONE STATUS NAZWY PORTÓWSb6b069102300 tutum/hello-world:latest "/bin/sh -c 'php-f..." 6 minut temu W górę 6 minut 80/ tcp hello-world.2.x5tvcuglwzd05olktbf3tpfqe62e26d4bc0ff tutum/hello-world:latest "/bin/sh -c 'php-f..." 6 minut temu Up 6 minut 80/tcp hello-world.1.yok48ja4o835nc7cog8hhjda pingdocker.com" 7 minut temu Od teraz 7 minut helloworld.2.iqz0bqkldxs2sg8ny50je7e7y92dab9f7ae97 alpine:latest "pingdocker.com" 7 minut temu Od 7 minut helloworld.1.0mal82mskbgecbcwh3op18nrr

Kontenery Dockera dla hello-world i Witaj Świecie usługi zostaną wymienione.

Eksplorowanie dzienników generowanych przez kontener usługi Docker

Dzienniki wygenerowane, jeśli istnieją, w kontenerze Docker dla usługi Docker, mogą być wymienione z dziennikami dockera Komenda. Jako przykład uzyskaj identyfikator kontenera dla usługi opartej na obrazach alpejskich i wypisz logi:

[email protected]:~$ docker logi db4827da350bPING docker.com (34.201.187.190):56 bajtów danych

Jak wskazują dane wyjściowe, domena docker.com jest wysyłana ping i wymieniane jest 56 bajtów danych.

Wniosek

W tym artykule omówiliśmy korzystanie z platformy Docker w klastrze Docker Swarm w usłudze Azure Container Service. Korzystaliśmy z samodzielnych kontenerów Docker i usług Docker na Swarm. Klaster Swarm w usłudze ACS uwidacznia punkt końcowy Swarm w celu uruchomienia autonomicznego kontenera Docker. Gdy kontenery Docker są uruchamiane w punkcie końcowym Swarm, Swarm uruchamia samodzielne kontenery Docker na agencie/ach Swarm. Tryb Swarm nie jest domyślnie włączony i należy go zainicjować na głównej maszynie wirtualnej Swarm.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego potrzebujesz modelowania danych?

  2. Zrozumienie typów i formatów MapReduce

  3. N-ta najwyższa pensja

  4. Fazy ​​optymalizacji i niewykorzystane możliwości

  5. Zanurz się głęboko w NoSQL:pełna lista baz danych NoSQL