Instalacja Portainer i Portainer Agent – Jak wygodnie zarządzać Dockerem przez przeglądarkę?
Docker zrewolucjonizował sposób, w jaki wdrażamy aplikacje, ale zarządzanie kontenerami, obrazami i wolumenami wyłącznie z poziomu wiersza poleceń (CLI) bywa na dłuższą metę uciążliwe. Tutaj z pomocą przychodzi Portainer – najpopularniejszy interfejs graficzny (WebGUI) dla Dockera, który sprawia, że orkiestracja kontenerów staje się prosta i przejrzysta.
Spis treści
- Wymagania wstępne
- Część 1: Instalacja Portainer Server
- Krok 1: Utworzenie wolumenu
- Krok 2: Uruchomienie kontenera Portainer
- Krok 3: Pierwsze logowanie
- Część 2: Instalacja Portainer Agent (Zarządzanie zdalnymi serwerami)
- Krok 1: Uruchomienie Agenta na zdalnym serwerze
- Krok 2: Dodanie środowiska w panelu głównym
- Alternatywa: Instalacja przez Docker Compose
- Podsumowanie
W tym poradniku przeprowadzimy Cię krok po kroku przez instalację Portainer Server (głównego panelu zarządzania) oraz Portainer Agent (do zarządzania zdalnymi serwerami/węzłami).

Wymagania wstępne
Zanim zaczniemy, upewnij się, że:
- Masz zainstalowany silnik Docker oraz Docker Compose. (Jeśli jeszcze tego nie zrobiłeś, zobacz mój poprzedni wpis o instalacji Dockera).
- Posiadasz uprawnienia administratora (root lub użytkownik w grupie docker) na serwerze.
Uwaga: W poradniku skupiamy się na wersji Portainer CE (Community Edition), która jest darmowa i w pełni wystarczająca dla większości zastosowań.
Część 1: Instalacja Portainer Server
Portainer sam w sobie działa jako kontener Dockera. Jest to najprostsza i zalecana metoda instalacji.
Krok 1: Utworzenie wolumenu
Portainer potrzebuje miejsca do przechowywania swoich danych (bazy danych, haseł administratora, konfiguracji). Aby dane nie zniknęły po restarcie kontenera, tworzymy wolumen Dockera:
docker volume create portainer_data
Krok 2: Uruchomienie kontenera Portainer
Użyjemy oficjalnego obrazu portainer/portainer-ce. Wykonaj poniższe polecenie:
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
Wyjaśnienie flag:
- -d: Uruchomienie w tle (detached mode).
- -p 9443:9443: Główny port interfejsu webowego (HTTPS).
- -p 8000:8000: Port używany przez mechanizm tunelowania (niezbędny, jeśli planujesz używać Agentów Edge).
- -v /var/run/docker.sock:/var/run/docker.sock: Kluczowy element – pozwala Portainerowi “rozmawiać” z demonem Dockera na hoście.
- -v portainer_data:/data: Mapowanie wolumenu z danymi.
- –restart=always: Kontener wstanie automatycznie po restarcie serwera.
Wskazówka: Starsze wersje używały portu 9000 (HTTP). Obecnie zaleca się używanie portu 9443 (HTTPS).
Krok 3: Pierwsze logowanie
- Otwórz przeglądarkę i wpisz adres: https://ADRES_TWOJEGO_SERWERA:9443.
- Przeglądarka może wyświetlić ostrzeżenie o certyfikacie (ponieważ Portainer generuje domyślnie certyfikat self-signed) – zaakceptuj ryzyko i przejdź dalej.
- Utwórz konto administratora (podaj nazwę użytkownika i silne hasło, co najmniej dwunasto znakowe).
- Wybierz Get Started. Zobaczysz środowisko “local”, które reprezentuje serwer, na którym właśnie zainstalowałeś Portainera.

Część 2: Instalacja Portainer Agent (Zarządzanie zdalnymi serwerami)
Jeśli posiadasz więcej niż jeden serwer z Dockerem (np. VPS produkcyjny i VPS testowy), nie musisz instalować pełnego Portainera na każdym z nich. Na dodatkowych maszynach instalujemy lżejszego Portainer Agenta.
Krok 1: Uruchomienie Agenta na zdalnym serwerze
Zaloguj się przez SSH na drugi serwer, którym chcesz zarządzać, i wykonaj polecenie:
docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:latest
Wyjaśnienie flag:
- -d: Uruchomienie kontenera w tle (tryb “detached”). Proces nie zablokuje Twojego terminala, a agent będzie działał cicho jako usługa systemowa.
- -p 9001:9001: Wystawienie portu agenta. To kluczowa różnica względem serwera – Agent nasłuchuje na porcie 9001. Twój główny Portainer Server będzie łączył się właśnie z tym portem, aby zarządzać tą maszyną.
- –name portainer_agent: Przypisanie łatwej do zapamiętania nazwy dla kontenera. Dzięki temu w przyszłości łatwiej będzie go zrestartować lub zaktualizować (np. wpisując docker restart portainer_agent).
- –restart=always: Polityka restartu. Gwarantuje, że Agent uruchomi się automatycznie po każdym restarcie serwera (VPS-a) lub w przypadku awarii samego procesu Dockera.
- -v /var/run/docker.sock:/var/run/docker.sock: Montowanie gniazda Dockera. To “układ nerwowy” całego systemu – dzięki temu Agent, będąc w kontenerze, ma uprawnienia do zarządzania innymi kontenerami na systemie hosta (gospodarza).
- -v /var/lib/docker/volumes:/var/lib/docker/volumes: Mapowanie katalogu z wolumenami. Ta flaga jest specyficzna dla Agenta i bardzo ważna. Pozwala ona Portainerowi na zdalne przeglądanie i edytowanie plików znajdujących się w wolumenach na tym serwerze (np. szybka edycja pliku config.php bez logowania się przez SSH).
- portainer/agent:latest: Wskazanie, aby Docker pobrał i uruchomił najnowszą dostępną wersję oficjalnego obrazu Agenta.
Agent nasłuchuje na porcie 9001. Ważne jest również mapowanie wolumenów (/var/lib/docker/volumes), co pozwoli Portainerowi na przeglądanie zawartości wolumenów na zdalnej maszynie.
Krok 2: Dodanie środowiska w panelu głównym
Wróć do swojego głównego Portainera (tego z Części 1).
- W menu po lewej stronie wybierz Environments.
2. Kliknij przycisk + Add environment (prawy górny róg).
3. Wybierz opcję Docker Standalone.
4. Wybierz metodę połączenia: Agent.

5. Wypełnij formularz:
- Name: Nazwa identyfikacyjna (np. “VPS-Produkcja”).
- Environment address: Adres IP zdalnego serwera oraz port agenta, np. 192.168.1.50:9001.
6. Kliknij Connect.

Gotowe! Teraz w głównym panelu możesz przełączać się między środowiskiem lokalnym a zdalnymi serwerami jednym kliknięciem.
Alternatywa: Instalacja przez Docker Compose
Dla fanów podejścia “Infrastructure as Code”, oto gotowe pliki docker-compose.yml.
Dla Portainer Server:
Utwórz plik docker-compose.yml:
version: '3.3'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
security_opt:
- no-new-privileges:true
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- portainer_data:/data
ports:
- "9443:9443"
- "8000:8000"
volumes:
portainer_data:
Dla Portainer Agent (na zdalnym serwerze):
Utwórz plik docker-compose.yml:
version: '3.8'
services:
agent:
image: portainer/agent:latest
container_name: portainer_agent
restart: always
ports:
- "9001:9001"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
Uruchomienie (dla obu przypadków):
docker compose up -d
Podsumowanie
Portainer to potężne narzędzie, które drastycznie skraca czas potrzebny na diagnostykę i zarządzanie kontenerami. Dzięki architekturze Klient-Agent możesz z jednego miejsca zarządzać całą flotą serwerów dockerowych, monitorować logi, wchodzić do konsoli kontenerów i zarządzać sieciami bez konieczności ciągłego logowania się przez SSH.
Jeśli spodobał Ci się ten wpis, sprawdź również pozostałe artykuły na moim blogu znajdujące się w kategorii Docker.
Bez komentarza! Bądź pierwszy.