Kurs Java

Kontener serwera HTTP

Serwery HTTP są kluczowymi komponentami w architekturze systemów sieciowych, obsługując żądania i odpowiedzi między klientami a serwerami. W tym rozdziale skupimy się na uruchomieniu serwera HTTP przy użyciu popularnego oprogramowania Nginx w kontenerze Dockera.

Dlaczego nginx?

Nginx jest wydajnym, skalowalnym i elastycznym serwerem HTTP oraz serwerem proxy. Jest szeroko stosowany ze względu na swoją stabilność, bogaty zestaw funkcji, prostą konfigurację i niskie zużycie zasobów.

Pobranie obrazu nginx

Podobnie jak w poprzednim razem, aby rozpocząć, najpierw musisz pobrać obraz nginx z Docker Hub. Możesz to zrobić za pomocą polecenia docker pull nginx.
Komunikacja Fronted - Backend
Podobnie jak w przypadku obrazu hello-world, Docker pobierze najnowszą wersję obrazu nginx (nginx:latest), chyba że określisz inny tag. Po pobraniu obrazu, będzie on widoczny w interfejscie narzędzia Docker Desktop:
Komunikacja Fronted - Backend

Uruchomienie kontenera nginx

Po pobraniu obrazu, możesz uruchomić kontener Nginx:
Komunikacja Fronted - Backend
Wykonanie komendy powoduje uruchomienie kontenera na podstawie obrazu. Oto co widzisz po uruchomieniu:
  • /docker-entrypoint.sh — Skrypt startowy uruchamiany przy inicjalizacji kontenera nginx. Zawiera instrukcje konfiguracyjne i uruchomieniowe.
  • /docker-entrypoint.d/ — Katalog zawierający dodatkowe skrypty, które są wykonywane podczas startu kontenera. Te skrypty mogą zawierać dodatkowe ustawienia konfiguracyjne.
  • 10-listen-on-ipv6-by-default.sh — Skrypt, który aktywuje nasłuchiwanie na IPv6 w domyślnej konfiguracji nginx (/etc/nginx/conf.d/default.conf).
  • 20-envsubst-on-templates.sh, 30-tune-worker-processes.sh — Inne skrypty wykonywane podczas uruchamiania, które mogą dostosowywać konfigurację nginx w oparciu o zmienne środowiskowe lub dostosowywać ustawienia wydajności.
  • Configuration complete; ready for start up — Oznacza, że proces konfiguracji został zakończony, a nginx jest gotowy do uruchomienia.
  • using the "epoll" event method, nginx/1.25.3, built by gcc... — Informacje dotyczące metody obsługi zdarzeń, wersji nginx, kompilatora itd.
  • OS: Linux... — Wersja systemu operacyjnego w kontenerze.
  • getrlimit(RLIMIT_NOFILE) — Informacje o limitach plików dla procesu.
  • start worker process — Narzędzie nginx uruchamia procesy robocze (workers) do obsługi żądań.
  • Linie zaczynające się od start worker process — Pokazują, że nginx uruchamia indywidualne procesy robocze. Każdy proces może obsługiwać część ruchu sieciowego do i z serwera nginx.
Podsumowując, te informacje wskazują, że kontener nginx został pomyślnie uruchomiony i skonfigurowany. Serwer jest gotowy do obsługi żądań HTTP, które są przekierowywane z portu 8080 na Twoim hoście na port 80 w kontenerze. Jeśli teraz przejdziesz do http://localhost:8080, powinieneś zobaczyć domyślną stronę nginx:
Komunikacja Fronted - Backend
Kontener znajdziesz w sekcji 'Containers' w interfejsie narzędzia Docker Desktop:
Komunikacja Fronted - Backend
Zwróć uwagę na to, że tym razem ikona kontenera jest aktywna (kolor zielony zamiast szarego). Oznacza to, że w przeciweiństwie do przykładu z kontenerem hello-world, w którym kontener zamkął się od razu po starcie, tym razem kontener nadal jest uruchomiony.

Przeglądanie uruchomionych kontenerów

Teraz warto skorzystać jeszcze z komendy docker ps, która wyświetla listę aktualnie uruchomionych kontenerów. Jest to niezwykle przydatna komenda, szczególnie gdy nie mamy dostępu do interfejsu graficznego Docker Desktop, lub gdy pracujemy w środowisku bez graficznego interfejsu użytkownika, na przykład na serwerze Unixowym za pośrednictwem SSH. Umożliwia ona szybką i efektywną kontrolę nad działającymi kontenerami bez konieczności korzystania z narzędzi graficznych:
Komunikacja Fronted - Backend
Najważniejszym elementem wyświetlanym przez docker ps jest CONTAINER ID, który stanowi unikalny identyfikator kontenera Docker. To samo ID można zobaczyć również w interfejsie narzędzia Docker Desktop.

Zatrzymanie kontenera

Uruchomiony kontener można w każdej chwili zatrzymać, używając komendy docker stop wraz z identyfikatorem kontenera (CONTAINER ID). W naszym przypadku polecenie to będzie wyglądało następująco: docker stop 07d168a0a5de. Po zatrzymaniu, kontener znika z listy aktualnie uruchomionych kontenerów. Można to łatwo zauważyć, uruchamiając ponownie komendę docker ps, która teraz nie będzie już wyświetlać tego zatrzymanego kontenera
Komunikacja Fronted - Backend
W narzędziu Docker Desktop również łatwo zauważyć, że kontener nie jest już uruchomiony:
Komunikacja Fronted - Backend
Wchodząc teraz na adres localhost:8080, nie zobaczysz już informacji o uruchomionym serwere HTTP:
Komunikacja Fronted - Backend
Appa Notka. Analizujemy kolejne kursy na Udemy, wykorzystując nasze doświadczenie zawodowe do oceny ich efektywności i popularności wśród uczestników. Z dużym zaangażowaniem selekcjonujemy te, które naszym zdaniem są najbardziej efektywne i jednocześnie cieszą się uznaniem uczestników.
Kurs Docker & Kubernetes: The Practical Guide [2023 Edition] jest efektem tej głębokiej analizy i prezentuje idealne połączenie wysokiej jakości edukacyjnej z aktualnymi trendami i wymaganiami rynkowymi.
Zdjęcie autora
Autor: Jarek Klimas
Data: 02 stycznia 2024
Labele: Backend, Poziom średniozaawansowany, Java
Topowe Materiały
Docker: Home Page
Docker: Downlaoad and install
Docker: Get Started with Docker
Docker: Kickstart Your Spring Boot Application Development

Spring IO: Container Images
Spring IO: Spring Boot Docker

Baeldung: Docker Guide
Baeldung: Creating Docker Images with Spring Boot
Baeldung: Introduction to Docker Compose
Baeldung: Docker Compose Support in Spring Boot 3

Udemy: Docker od podstaw - dla programistów i nie tylko
Udemy: Docker & Kubernetes: The Practical Guide [2023 Edition]

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE