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.
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:
Uruchomienie kontenera nginx
Po pobraniu obrazu, możesz uruchomić kontener Nginx:
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:
Kontener znajdziesz w sekcji 'Containers' w interfejsie narzędzia Docker Desktop:
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:
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
W narzędziu Docker Desktop również łatwo zauważyć, że kontener nie jest już uruchomiony:
Wchodząc teraz na adres
localhost:8080, nie zobaczysz już informacji o uruchomionym serwere HTTP:
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.
Autor: Jarek Klimas
Data: 02 stycznia 2024
Labele: Backend, Poziom średniozaawansowany, Java
Czy informacje, które otrzymałeś, były pomocne?
Jeśli tak, zapraszam Cię do podarowania mi kawy.
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]