Jak uruchomić Nginx w kontenerze Docker na Ubuntu 22.04

Nginx, znany ze swojej wydajności, to serwer HTTP oraz serwer proxy, który doskonale radzi sobie z obsługą dużego ruchu internetowego. Jest wszechstronny – potrafi serwować zarówno statyczne, jak i dynamiczne treści, a jego zaawansowane funkcje obejmują równoważenie obciążenia, buforowanie oraz przekierowywanie adresów URL. Umieszczenie Nginx w kontenerze Dockera to krok w stronę izolacji, łatwiejszego przenoszenia i wygodniejszego zarządzania aplikacją.

Ten poradnik poprowadzi Cię przez proces uruchamiania serwera Nginx w kontenerze Docker na systemie Ubuntu 22.04.

Niezbędne Elementy

  • Serwer z systemem Ubuntu 22.04 i uprawnieniami administratora (root).
  • Zainstalowany Docker.

Instalacja i Konfiguracja Nginx w Kontenerze

Instalacja Nginx w Systemie

Zacznij od zainstalowania Nginx w systemie operacyjnym, używając poniższych komend:

sudo apt update
sudo apt install nginx

Tworzenie Pliku Dockerfile

W wybranym katalogu utwórz plik o nazwie Dockerfile:

sudo nano Dockerfile

Wklej do niego następującą konfigurację:

FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf

Warto zwrócić uwagę, że default.conf jest nazwą pliku konfiguracyjnego Nginx. Jeśli używasz innego nazewnictwa, zmień je w poleceniu COPY.

Uruchomienie Kontenera

Zbuduj obraz Dockera, używając następującej komendy:

sudo docker build -t nginx .

Następnie, uruchom kontener Nginx:

sudo docker run -d --name nginx -p 80:80 nginx
  • -d uruchamia kontener w tle.
  • --name nginx nadaje kontenerowi nazwę „nginx”.
  • -p 80:80 przekierowuje port 80 kontenera na port 80 hosta.

Konfiguracja Zapory Sieciowej

Jeżeli na serwerze działa zapora, otwórz port 80, aby umożliwić dostęp do Nginx:

sudo ufw allow 80

Weryfikacja Działania Nginx

Sprawdź, czy Nginx działa poprawnie, wykonując poniższe kroki:

  • Otwórz przeglądarkę i wpisz adres URL http://localhost.
  • Powinna pojawić się domyślna strona powitalna Nginx.

Zmiana Konfiguracji Nginx

Aby zmodyfikować konfigurację Nginx, wykonaj kolejno poniższe kroki:

  1. Zatrzymaj kontener: sudo docker stop nginx.
  2. Edytuj plik default.conf w katalogu roboczym.
  3. Zaktualizuj obraz: sudo docker build -t nginx ..
  4. Uruchom ponownie kontener: sudo docker run -d --name nginx -p 80:80 nginx.

Zarządzanie Kontenerem

Wyświetlanie Kontenerów

Aby zobaczyć listę uruchomionych kontenerów, użyj:

sudo docker ps

Zatrzymywanie Kontenera

Kontener Nginx zatrzymasz, wpisując:

sudo docker stop nginx

Usuwanie Kontenera

Aby usunąć kontener Nginx, użyj:

sudo docker rm nginx

Usuwanie Obrazu

Obraz Nginx usuniesz za pomocą komendy:

sudo docker rmi nginx

Konfiguracja Protokołu HTTP/2

W celu włączenia obsługi HTTP/2 w Nginx, wykonaj poniższe kroki:

  • Zainstaluj bibliotekę OpenSSL: sudo apt install libssl-dev.
  • Zbuduj obraz Dockera, używając zmodyfikowanego pliku Dockerfile:
  • FROM nginx:latest
    RUN apt-get update && \
        apt-get install -y libssl-dev && \
        apt-get clean
    COPY ./default.conf /etc/nginx/conf.d/default.conf
    
  • Uruchom ponownie kontener Nginx.

Konfiguracja SSL/TLS

Aby zabezpieczyć połączenie, skonfiguruj SSL/TLS w Nginx:

  • Wygeneruj certyfikat i klucz: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx.key -out nginx.crt.
  • W pliku default.conf dodaj poniższe sekcje:
  • listen 443 ssl;
    ssl_certificate /path/to/nginx.crt;
    ssl_certificate_key /path/to/nginx.key;
    
  • Uruchom ponownie kontener.

Podsumowanie

Uruchomienie Nginx w kontenerze Docker na systemie Ubuntu 22.04 zapewnia wiele korzyści, takich jak izolacja, przenośność i uproszczone zarządzanie. Ten poradnik szczegółowo omówił proces instalacji, konfiguracji i uruchomienia kontenera Nginx. Dostosuj konfigurację do swoich potrzeb i pamiętaj o właściwym zarządzaniu kontenerem. Wykorzystaj potęgę konteneryzacji Dockera, aby twoje aplikacje działały sprawniej i wydajniej.

Najczęściej Zadawane Pytania

  1. Czym jest Docker? Docker to platforma do konteneryzacji, która umożliwia pakowanie i uruchamianie aplikacji w odizolowanych środowiskach (kontenerach).
  2. Jakie korzyści płyną z używania kontenerów Docker? Kontenery Docker gwarantują izolację, przenośność, łatwość wdrażania i spójność środowiska.
  3. Jak zainstalować Docker na Ubuntu? Użyj kolejnych poleceń: sudo apt update, sudo apt install curl, curl -fsSL https://get.docker.com -o get-docker.sh, sh get-docker.sh, sudo systemctl start docker.
  4. Jak zbudować obraz Docker? W katalogu zawierającym Dockerfile wpisz: docker build -t NAZWA_OBRAZU ..
  5. Jak uruchomić kontener Docker? Uruchom polecenie: docker run -d -p HOST_PORT:KONTENER_PORT NAZWA_OBRAZU.
  6. Jak sprawdzić działanie Nginx? Wpisz w przeglądarce adres: http://localhost.
  7. Jak modyfikować konfigurację Nginx w kontenerze? Zatrzymaj kontener, zmień default.conf, zaktualizuj obraz i uruchom kontener.
  8. Jak skonfigurować HTTP/2? Zainstaluj OpenSSL, przebuduj obraz i uruchom ponownie kontener.
  9. Jak ustawić SSL/TLS? Wygeneruj certyfikat i klucz, zmodyfikuj default.conf i uruchom ponownie kontener.
  10. Jak zarządzać kontenerami? Używaj poleceń: docker ps, docker stop, docker rm i docker rmi.