Instalacja i konfiguracja Portainer CE | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

Instalacja i konfiguracja Portainer CE

Poziom: Początkujący
Czas na ukończenie: ~30 minut

Cel: Po ukończeniu tego przewodnika będziesz mieć w pełni skonfigurowany panel Portainer CE zabezpieczony protokołem HTTPS i gotowy do zarządzania infrastrukturą Docker na serwerze.

Wprowadzenie

Konteneryzacja oparta na Dockerze stała się standardem dla infrastruktury serwerowej, zapewniając przewidywalne wdrażanie i efektywne skalowanie usług. Jednak zarządzanie dziesiątkami kontenerów wyłącznie za pomocą linii poleceń staje się niewygodne. Portainer CE rozwiązuje ten problem, oferując przyjazny dla użytkownika interfejs webowy do administracji Dockerem: zapewnia dostęp do wszystkich kontenerów, ich statusów, logów i zasobów, a zarządzanie odbywa się w kilku kliknięciach bez utraty kontroli nad systemem.

Przygotowanie serwera

Przed instalacją należy upewnić się, że serwer jest gotowy do wdrożenia Portainera. Sam Portainer działa jako kontener, więc wystarczy zainstalować tylko Dockera.

Wymagania systemowe

  • System operacyjny: Dowolna dystrybucja Linux (Ubuntu 20.04+, Debian 11+, CentOS/Rocky Linux 8+) używana w hostingu.
  • Uprawnienia: dostęp root lub możliwość wykonywania poleceń przez sudo.
  • Wymagania sprzętowe: Minimum 1 GB RAM i 10 GB wolnego miejsca na dysku.
  • Wymagania sieciowe: Otwarte porty 8000 i 9443 dla dostępu do Portainera, port 443 dla konfiguracji reverse proxy.

Sprawdzanie dostępności Dockera

Połącz się z serwerem przez SSH. Przede wszystkim sprawdź, czy Docker jest zainstalowany i czy demon działa:

docker --version sudo systemctl status docker

Jeśli wyświetlana jest wersja Dockera i status jest aktywny (running), można pominąć krok instalacji Dockera.

Instalacja Dockera (jeśli potrzebna)

Na nowych serwerach Docker zazwyczaj nie jest obecny. Aby go zainstalować, uruchom standardowy skrypt (dla Debian/Ubuntu):

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo systemctl enable docker sudo systemctl start docker

Aby zainstalować wtyczkę Docker Compose (jeśli nie została zainstalowana w poprzednim kroku), uruchom:

sudo apt-get install docker-compose-plugin # Dla Debian/Ubuntu # lub sudo dnf install docker-compose-plugin # Dla CentOS/Rocky Linux

Sprawdź wersję zainstalowanego docker compose:

docker compose version

Wdrażanie Portainer CE w Dockerze

Istnieją dwa główne sposoby uruchomienia Portainera: za pomocą polecenia docker run (szybki start) i za pomocą docker-compose.yml (wygodne dla wersjonowania konfiguracji).

Metoda 1: Uruchamianie za pomocą docker run

Uruchom następujące polecenie na serwerze:

sudo docker run -d \ -p 8000:8000 \ -p 9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest

Info

Polecenie jest uruchamiane przez sudo, ponieważ bieżący użytkownik nie został jeszcze dodany do grupy docker. Jeśli planujesz używać dockera bez sudo później, dodaj użytkownika do grupy docker: sudo usermod -aG docker $USER. Po wykonaniu polecenia musisz się wylogować i zalogować ponownie lub zrestartować sesję.

Wyjaśnienie parametrów:

  • -d – Uruchom kontener w tle.
  • -p 8000:8000 – Przekierowanie portów dla agentów Edge i tuneli.
  • -p 9443:9443 – Przekierowanie portów dla zabezpieczonego interfejsu webowego (HTTPS). Portainer automatycznie generuje samopodpisany certyfikat SSL.
  • --name portainer – Przypisuje znaczącą nazwę kontenerowi.
  • --restart=always – Automatyczna polityka restartu kontenera w przypadku awarii lub restartu serwera.
  • -v /var/run/docker.sock:/var/run/docker.sock – Montuje gniazdo Dockera wewnątrz kontenera Portainera. Umożliwia to Portainerowi interakcję i zarządzanie demonem Dockera na hoście.
  • -v portainer_data:/data – Tworzy nazwany wolumin do przechowywania danych Portainera (użytkownicy, ustawienia, konfiguracje połączeń).
  • portainer/portainer-ce:latest – Obraz z najnowszą stabilną wersją Community Edition.

Metoda 2: Uruchamianie za pomocą docker-compose

Aby skorzystać z tej metody, utwórz katalog i plik docker-compose.yml:

mkdir ~/portainer-docker cd ~/portainer-docker nano docker-compose.yml

Wstaw następującą zawartość:

services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always ports: - "8000:8000" - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data volumes: portainer_data:

Zapisz plik i uruchom polecenie:

docker compose up -d

Pierwsze uruchomienie i konfiguracja interfejsu webowego

Po uruchomieniu kontenera Portainer staje się on dostępny w sieci.

Krok 1. Połączenie z interfejsem webowym

Otwórz przeglądarkę i przejdź do: https://<adres-IP-serwera>:9443.

Info

Z powodu użycia samopodpisanego certyfikatu przeglądarka wyświetli ostrzeżenie. Jest to normalne przy pierwszym uruchomieniu. Musisz przejść do witryny (na przykład klikając "Zaakceptuj ryzyko" lub "Przejdź do witryny").

Krok 2. Tworzenie użytkownika

Na stronie rejestracji musisz podać nazwę użytkownika (zalecane admin) i ustawić silne hasło.

Tip

Hasło musi być złożone, ponieważ zapewnia pełny dostęp do zarządzania kontenerami.

Krok 3. Podłączanie środowiska

Po utworzeniu użytkownika Portainer poprosi o podłączenie środowisk. Na tym etapie możesz podłączyć lokalny Docker (już dostępny dzięki zamontowanemu gniazdu) lub przejść do dodawania zdalnych środowisk za pomocą przycisku "Add Environments". Zdalne środowiska są przydatne, gdy musisz zarządzać wieloma serwerami z jednego interfejsu Portainera: na przykład dodając hosty Dockera w różnych centrach danych lub serwery z Kubernetes. Połączenie odbywa się za pomocą agentów Portainera lub przez API z użyciem certyfikatów TLS.

  • Wybierz opcję "Get Started". Jest to podstawowy scenariusz dla jednego serwera.
  • Portainer automatycznie wykryje lokalne gniazdo Dockera. Zostanie ono wyświetlone jako "local".
  • Kliknij na nie, aby zakończyć konfigurację.

Konfiguracja jest zakończona. Otworzy się pulpit Portainera (główny ekran) z krótkimi statystykami na temat kontenerów, obrazów, woluminów i sieci.

Główne funkcje Portainera

Przyjrzyjmy się głównym sekcjom interfejsu używanym do codziennych zadań administracyjnych.

Pulpit

Ekran startowy, który wyświetla ogólny obraz: liczba uruchomionych i zatrzymanych kontenerów, liczba pobranych obrazów. Pozwala szybko ocenić stan serwera.

Kontenery

  • Centralna sekcja zarządzania. Wyświetla listę wszystkich kontenerów.
  • Zarządzanie kontenerami: Uruchom, zatrzymaj, zrestartuj, usuń kontener jednym kliknięciem.
  • Logi: Zakładka "Logi" zapewnia dostęp do przeglądania logów kontenerów w czasie rzeczywistym.
  • Inspekcja: Wyświetla pełne informacje o kontenerze w formacie JSON: zmienne środowiskowe, punkty montowania, ustawienia sieciowe.
  • Statystyki: Wykresy zużycia CPU, pamięci i sieci dla każdego kontenera. Pomaga określić zużycie zasobów przez poszczególne usługi.
  • Konsola Exec: Możliwość otwarcia terminala webowego wewnątrz kontenera do wykonywania poleceń.

Stosy

Implementacja Docker Compose w interfejsie webowym. Pozwala na przesyłanie lub tworzenie plików YAML bezpośrednio przez przeglądarkę do wdrażania aplikacji wielokontenerowych.

Obrazy

  • Zarządzanie obrazami Dockera.
  • Pobierz: Możliwość pobierania obrazów (np. nginx:latest lub mysql:8.0) bezpośrednio z interfejsu.
  • Usuń: Czyszczenie nieużywanych obrazów w celu zwolnienia miejsca na dysku.

Woluminy

Zarządzanie trwałymi woluminami danych. Wyświetla istniejące woluminy, ich przypisanie do kontenerów i zajmowaną przestrzeń. Krytycznie ważne dla baz danych i danych użytkowników.

Sieci

Pozwala na tworzenie izolowanych sieci do interakcji kontenerów.

Cofanie zmian (Usuwanie Portainera)

Jeśli musisz całkowicie usunąć Portainera i jego dane z serwera, wykonaj następujące kroki:

1. Zatrzymaj i usuń kontener Portainera:

sudo docker stop portainer sudo docker rm portainer

2. Usuń wolumin danych Portainera (uwaga: ta czynność jest nieodwracalna):

sudo docker volume rm portainer_data

Tip

Usunięcie woluminu portainer_data spowoduje nieodwracalną utratę wszystkich użytkowników, ustawień i konfiguracji Portainera.

3. Usuń obraz Portainera (opcjonalnie):

sudo docker rmi portainer/portainer-ce:latest

Bezpieczeństwo i zalecenia

Dla środowisk produkcyjnych wymagana jest dodatkowa konfiguracja bezpieczeństwa Portainera.

Użycie Reverse Proxy (Nginx/Apache)

Zaleca się skonfigurowanie subdomeny (np. portainer.domain.com) i proxy ruchu przez Nginx. To zapewni:

  • Użycie ważnego certyfikatu SSL (darmowego z Let's Encrypt lub płatnego SSL, np. od Sectigo).
  • Centralizowane logowanie dostępu.
  • Możliwość skonfigurowania dodatkowego uwierzytelniania.

1. Instalacja i konfiguracja Nginx

Zainstaluj Nginx:

sudo apt install -y nginx # Dla Debian/Ubuntu # lub sudo dnf install -y nginx # Dla CentOS/Rocky Linux

Utwórz plik konfiguracyjny dla Portainera:

sudo nano /etc/nginx/sites-available/portainer.conf

Dodaj następującą konfigurację, zastępując <YOUR_DOMAIN> swoją domeną, która wskazuje na adres IP serwera:

server { listen 80; server_name ; location / { proxy_pass https://localhost:9443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # Czas oczekiwania dla długich operacji proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; } }

Aktywuj konfigurację:

sudo ln -s /etc/nginx/sites-available/portainer.conf /etc/nginx/sites-enabled/

Sprawdź konfigurację Nginx:

sudo nginx -t

Jeśli sprawdzenie zakończy się sukcesem, zrestartuj Nginx:

sudo systemctl restart nginx

2. Konfiguracja HTTPS (zalecana)

Zainstaluj Certbot:

sudo apt install -y certbot python3-certbot-nginx

Uzyskaj certyfikat SSL:

sudo certbot --nginx -d

Zastąp <YOUR_DOMAIN> swoją domeną.

Podczas instalacji podaj swój email, na przykład admin@<YOUR_DOMAIN>, a następnie naciśnij Y dwa razy.

Sprawdź automatyczne odnawianie certyfikatu:

sudo systemctl list-timers | grep certbot

Konfiguracja zapory sieciowej

Bezpośredni dostęp do portów Portainera powinien być ograniczony. Zezwól na dostęp do portów 8000 i 9443 tylko z zaufanych adresów IP.

Tip

Bądź ostrożny z regułami zapory sieciowej. Nieprawidłowa konfiguracja może zablokować dostęp do serwera.

Przykład dla UFW:

sudo ufw allow from 192.168.1.0/24 to any port 9443 proto tcp sudo ufw deny 9443

Gdzie 192.168.1.0/24 to podsieć zaufanych adresów IP.

Regularne aktualizacje

Zaleca się śledzenie wydania nowych wersji Portainera i terminowe aktualizowanie kontenera w celu wyeliminowania potencjalnych luk w zabezpieczeniach.

Weryfikacja działania

Aby zweryfikować poprawność działania Portainera, wykonaj następujące czynności.

1. Wizualna kontrola: W sekcji "Kontenery" upewnij się, że kontener portainer ma status running.

2. Tworzenie kontenera testowego:

  • Przejdź do sekcji "Kontenery", kliknij przycisk "Add container".
  • W polu "Name" podaj test-nginx.
  • W polu "Image" podaj nginx:alpine.
  • W sekcji "Port mapping" podaj port hosta 8080, port kontenera 80.
  • Kliknij "Deploy the container".

3. Sprawdzenie dostępności:

  • Poczekaj, aż kontener pojawi się na liście ze statusem running.
  • Otwórz przeglądarkę i przejdź do http://<YOUR_IP_ADDRESS>:8080. Powinna zostać wyświetlona strona powitalna Nginx.

4. Sprawdzenie zarządzania:

  • W Portainerze znajdź kontener test-nginx i kliknij przycisk "Stop".
  • Odśwież stronę Nginx w przeglądarce – dostęp powinien być niedostępny.
  • Kliknij "Start" – dostęp do strony powinien zostać przywrócony.

Rozwiązywanie problemów

Problem 1: Nie można otworzyć interfejsu webowego Portainera pod adresem https://<YOUR_IP_ADDRESS>:9443

Możliwa przyczyna: Zapora sieciowa blokuje port 9443.

Rozwiązanie: Sprawdź reguły zapory sieciowej i upewnij się, że port jest otwarty. Dla UFW: sudo ufw status | grep 9443.

Problem 2: Błąd "Cannot connect to the Docker daemon" podczas uruchamiania poleceń Dockera.

Możliwa przyczyna: Demon Dockera nie działa lub użytkownik nie ma uprawnień.

Rozwiązanie: Uruchom demona: sudo systemctl start docker. Jeśli dodałeś użytkownika do grupy docker, wyloguj się i zaloguj ponownie.

Problem 3: Kontener Portainera nie uruchamia się i natychmiast wychodzi (status exited).

Możliwa przyczyna: Konflikt portów lub uszkodzony obraz.

Rozwiązanie: Sprawdź, czy port 9443 jest zajęty przez inną aplikację: sudo ss -tulpn | grep 9443. Spróbuj przypisać inny port i zrestartować kontener: sudo docker restart portainer.

Podsumowanie

Portainer CE zapewnia efektywne narzędzie do wizualnego monitorowania i zarządzania kontenerami Dockera. Możliwość szybkiej oceny stanu kontenerów, analizy wykresów zużycia zasobów oraz wykonywania typowych operacji bez konieczności łączenia się przez SSH skraca czas reakcji na incydenty i upraszcza codzienną administrację.

To narzędzie może być przydatne, gdy konieczne jest zapewnienie ograniczonego dostępu do zarządzania kontenerami dla deweloperów lub mniej doświadczonego personelu bez przyznawania bezpośredniego dostępu do linii poleceń serwera. Portainer CE jest standardowym rozwiązaniem do wizualizacji infrastruktury kontenerowej i jest zalecany do użycia na serwerach.

Wersja dokumentu: 1.1
Ostatnia aktualizacja: Marzec 2026
Właściciel: Zespół Dokumentacji Technicznej

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA