 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Portainer — Docker przez przeglądarkę

# Portainer — zarządzanie kontenerami Docker przez przeglądarkę

Opublikowano: 10 kwietnia 2026 · Kategoria: VPS

Docker przez terminal jest potężny, ale zarządzanie dziesiątkami kontenerów na kilku serwerach za pomocą samych komend szybko staje się kłopotliwe. Portainer CE rozwiązuje ten problem: to open-source'owy panel webowy, który daje graficzny interfejs do całego ekosystemu Dockera — kontenerów, obrazów, sieci, woluminów, logów i Stacks (Docker Compose). Działa jako kontener, jest lekki (poniżej 100 MB RAM) i obsługuje zarówno lokalne, jak i zdalne Docker hosty przez Portainer Agent. Ten artykuł pokazuje instalację, najważniejsze funkcje i jak bezpiecznie wystawić Portainera w produkcji.

## Instalacja Portainer CE przez Docker

Portainer wymaga tylko działającego Dockera. Instalacja zajmuje minutę — uruchamiasz jeden kontener, który sam zarządza pozostałymi. Dane konfiguracji przechowywane są w nazwanym woluminie, więc przeżyją restarty i aktualizacje Portainera.

\# Utwórz wolumin na dane Portainera (trwałe storage)
docker volume create portainer\_data

# Uruchom Portainer CE (wersja 2.x)
docker run -d \\
  --name portainer \\
  --restart=always \\
  -p 9443:9443 \\
  -p 9000:9000 \\
  -v /var/run/docker.sock:/var/run/docker.sock \\
  -v portainer\_data:/data \\
  portainer/portainer-ce:latest

# Sprawdz status
docker ps --filter name=portainer

# Portainer dostepny pod:
# https://IP\_SERWERA:9443  (HTTPS, self-signed cert)
# http://IP\_SERWERA:9000   (HTTP, tylko dla dev/LAN)

Przy pierwszym wejściu Portainer poprosi o ustawienie hasła administratora (minimum 12 znaków). Następnie wybierasz środowisko — opcja "Get Started" automatycznie podłącza lokalny Docker przez zamontowany socket `/var/run/docker.sock`. Interfejs jest od razu gotowy do pracy.

## Podstawowe operacje: kontenery, obrazy, logi

Panel Containers pokazuje wszystkie kontenery (uruchomione i zatrzymane) z informacją o statusie, użyciu CPU/RAM i portach. Dla każdego kontenera dostępne są akcje: Start, Stop, Restart, Kill, Pause, a także podgląd logów w czasie rzeczywistym, terminal (exec) i inspekcja konfiguracji.

Sekcja

Co można zrobić

Odpowiednik CLI

Containers

Start/Stop/Restart, logi, exec terminal, stats CPU/RAM

docker ps, logs, exec, stats

Images

Pull, usuwanie nieużywanych, tagowanie, push do registry

docker pull, rmi, tag, push

Networks

Tworzenie sieci (bridge/overlay), podłączanie kontenerów

docker network create/connect

Volumes

Tworzenie, inspekcja, usuwanie nieużywanych

docker volume create/prune

Stacks

Deploy z YAML (Docker Compose), aktualizacja, rollback

docker compose up/down

Registries

Dodawanie prywatnych registry (Docker Hub, GHCR, Harbor)

docker login

Events

Historia zdarzeń Docker Engine (start, stop, pull, push)

docker events

## Stacks — Docker Compose przez interfejs webowy

Stacks to jedna z najważniejszych funkcji Portainera dla osób pracujących z Docker Compose. Wklejasz lub wgrywasz plik YAML, opcjonalnie definiujesz zmienne środowiskowe przez formularz (zamiast pliku .env), i klikasz "Deploy the stack". Portainer uruchomi wszystkie zdefiniowane usługi. Poniżej przykładowy stack z WordPress i MySQL:

version: '3.8'

services:
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL\_ROOT\_PASSWORD: {{ MYSQL\_ROOT\_PASS }}
      MYSQL\_DATABASE: wordpress
      MYSQL\_USER: wpuser
      MYSQL\_PASSWORD: {{ MYSQL\_USER\_PASS }}
    volumes:
      - db\_data:/var/lib/mysql
    networks:
      - wp\_net

  wordpress:
    image: wordpress:6-php8.2-fpm
    restart: always
    depends\_on:
      - db
    environment:
      WORDPRESS\_DB\_HOST: db:3306
      WORDPRESS\_DB\_NAME: wordpress
      WORDPRESS\_DB\_USER: wpuser
      WORDPRESS\_DB\_PASSWORD: {{ MYSQL\_USER\_PASS }}
    volumes:
      - wp\_data:/var/www/html
    networks:
      - wp\_net

volumes:
  db\_data:
  wp\_data:

networks:
  wp\_net:

Zmienne `{{ MYSQL_ROOT_PASS }}` i `{{ MYSQL_USER_PASS }}` możesz zdefiniować w formularzu Portainer w sekcji "Environment variables" — nie musisz ich hardcodować w YAML. Portainer doda je automatycznie jako zmienne środowiskowe przy deploymencie.

## Portainer Agent — zarządzanie zdalnymi Docker hostami

Jeden Portainer może zarządzać wieloma serwerami Docker jednocześnie. Wystarczy zainstalować Portainer Agent na każdym zdalnym hoście, a następnie dodać go jako nowe środowisko w panelu. Agent działa jako kontener i nasłuchuje na porcie 9001.

\# Na ZDALNYM serwerze (kazdy VPS ktory chcesz zarzadzac)
docker run -d \\
  --name portainer\_agent \\
  --restart=always \\
  -p 9001:9001 \\
  -v /var/run/docker.sock:/var/run/docker.sock \\
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \\
  portainer/agent:latest

# W Portainerze: Settings > Environments > Add environment
# Typ: Docker Standalone / Agent
# Endpoint URL: IP\_ZDALNEGO\_SERWERA:9001

# WAZNE: port 9001 powinien byc otwarty TYLKO dla IP serwera z Portainerem
# UFW na zdalnym hoście:
ufw allow from IP\_PORTAINERA to any port 9001

## RBAC — Role-Based Access Control dla zespołów

Portainer CE obsługuje podstawowy RBAC: możesz tworzyć użytkowników i przypisywać im role per środowisko. Portainer Business (płatny) oferuje bardziej granularny RBAC, ale nawet darmowa wersja pozwala na separację uprawnień między adminami a zwykłymi użytkownikami. Dostępne role w CE:

-   **Administrator** — pełny dostęp do wszystkiego, w tym ustawień Portainera i zarządzania użytkownikami.
-   **Standard User** — dostęp do przypisanych środowisk, bez dostępu do ustawień globalnych. Może uruchamiać/zatrzymywać kontenery i deployować Stacks.
-   **Read-Only User** — tylko odczyt; widzi kontenery i logi, ale nie może niczego zmieniać. Przydatne dla QA i monitoringu.

## Nginx reverse proxy z HTTPS dla Portainera

Zamiast wystawiać Portainera bezpośrednio na zewnętrzny port 9000, lepiej schować go za Nginx z HTTPS. Zmienisz adres dostępowy z `http://IP:9000` na `https://portainer.twoja-domena.pl`, z ważnym certyfikatem SSL.

\# /etc/nginx/sites-available/portainer.conf
server {
    listen 80;
    server\_name portainer.twoja-domena.pl;
    return 301 https://$host$request\_uri;
}

server {
    listen 443 ssl http2;
    server\_name portainer.twoja-domena.pl;

    ssl\_certificate /etc/letsencrypt/live/portainer.twoja-domena.pl/fullchain.pem;
    ssl\_certificate\_key /etc/letsencrypt/live/portainer.twoja-domena.pl/privkey.pem;

    location / {
        proxy\_pass https://localhost:9443;
        proxy\_ssl\_verify off;  # self-signed cert Portainera
        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;
    }
}

# Wydaj certyfikat (przed tym ustaw DNS A portainer.twoja-domena.pl → IP serwera)
certbot --nginx -d portainer.twoja-domena.pl
nginx -t && systemctl reload nginx

Po tej konfiguracji ogranicz dostęp do portów 9000 i 9443 przez UFW tylko do localhost lub sieci wewnętrznej — cały ruch zewnętrzny będzie przechodził przez Nginx na portach 80/443.

## Aktualizacja Portainera bez utraty danych

\# Zatrzymaj i usun stary kontener (dane sa w woluminie portainer\_data)
docker stop portainer
docker rm portainer

# Pobierz najnowszy obraz
docker pull portainer/portainer-ce:latest

# Uruchom nowy kontener z tymi samymi opcjami
docker run -d \\
  --name portainer \\
  --restart=always \\
  -p 9443:9443 \\
  -p 9000:9000 \\
  -v /var/run/docker.sock:/var/run/docker.sock \\
  -v portainer\_data:/data \\
  portainer/portainer-ce:latest

# Sprawdz wersje po aktualizacji
docker exec portainer portainer --version

## Najczęstsze pytania

Czym jest Portainer i do czego służy? +

Portainer to open-source'owy panel webowy do zarządzania Dockerem. Pozwala przez przeglądarkę uruchamiać kontenery, przeglądać logi, zarządzać sieciami, woluminami i obrazami — bez konieczności pisania komend w terminalu. Portainer CE (Community Edition) jest darmowy i obsługuje Docker Engine, Docker Swarm oraz Kubernetes.

Czy Portainer jest bezpieczny w produkcji? +

Portainer sam w sobie jest bezpieczny, ale wymaga prawidłowej konfiguracji. Kluczowe zasady: uruchamiaj na osobnym porcie (domyślnie 9000/9443), ogranicz dostęp przez firewall tylko do zaufanych IP, używaj HTTPS (TLS), utwórz dedykowanego użytkownika zamiast konta admin, włącz RBAC (Role-Based Access Control) dla zespołów. W produkcji rozważ użycie Nginx reverse proxy z certbot SSL zamiast bezpośredniego dostępu na port.

Co to są Stacks w Portainerze? +

Stacks w Portainerze to odpowiednik Docker Compose — grupy usług zdefiniowane jako plik YAML. W interfejsie Portainera możesz wkleić lub wgrać docker-compose.yml i uruchomić go jednym kliknięciem. Stacks obsługują zmienne środowiskowe (.env), volumes i networks. To wygodna alternatywa dla ręcznego docker compose up na serwerze.

Jaka jest różnica między Portainer a Docker Desktop? +

Docker Desktop to narzędzie lokalne dla programistów (Windows/macOS). Portainer to panel webowy uruchamiany na serwerze, dostępny zdalnie przez przeglądarkę. Portainer zarządza Dockerem na zdalnych serwerach VPS, obsługuje wiele środowisk jednocześnie (przez Portainer Agent) i oferuje RBAC dla zespołów. Docker Desktop jest do lokalnego devu, Portainer — do zarządzania produkcją i stagingiem na VPS.

Ile RAM potrzebuje Portainer? +

Portainer CE jest bardzo lekki — sam kontener zużywa poniżej 100 MB RAM. Przy kilku-kilkunastu zarządzanych kontenerach cały stos (Portainer + Docker Engine) działa komfortowo na VPS z 1-2 GB RAM. Dla większych środowisk (dziesiątki kontenerów, Swarm, Kubernetes) rekomendowane jest 4+ GB RAM.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS pod Docker + Portainer — dużo RAM i NVMe dla kontenerów

Docker Ready

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

ProSerwer.pl

Polski VPS do Portainera z obsługą i backupem codziennym

Polski VPS

[Aktywuj rabat →](/out/proserwer-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer)

Mikr.us

Budżetowy VPS do testów Portainera i Dockera

Dev/Test

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

## Powiązane strony

-   [Docker na VPS — instalacja i Docker Compose](/baza-wiedzy/docker-na-vps)
-   [Docker Compose w produkcji — stacks, secrets, healthchecks](/baza-wiedzy/docker-compose-produkcja)
-   [Traefik v3 — reverse proxy dla Dockera z HTTPS](/baza-wiedzy/traefik-reverse-proxy)
-   [Wszystkie artykuły](/baza-wiedzy/)