Krótka odpowiedź: w Plesku kontenery uruchamia się rozszerzeniem Docker: wybierasz obraz (np. z Docker Hub), ustawiasz zmienne środowiskowe, mapowanie portów i wolumeny, a potem wystawiasz kontener pod domeną regułą Docker Proxy Rules z certyfikatem HTTPS domeny. Aplikacje z kilku kontenerów opisujesz plikiem docker-compose.yml i uruchamiasz jako stos (Stack). Ważne: w Plesku kontenerami zarządza administrator serwera, a kontenery i ich wolumeny nie trafiają do kopii zapasowych Pleska.
Rozszerzenie Docker w Plesku
Rozszerzenie Docker dodaje do Pleska graficzny interfejs dla standardowego Docker Engine zainstalowanego na serwerze. Pozwala wyszukiwać i pobierać obrazy, uruchamiać kontenery, ustawiać ich parametry, przeglądać logi i zużycie zasobów oraz uruchamiać stosy Docker Compose. Od Plesk Obsidian 18.0.80 rozszerzenie działa również na serwerach z CloudLinux 8 i 9.
Trzy rzeczy, które warto wiedzieć przed startem:
- Zarządza administrator. Klienci i resellerzy nie mają w Plesku dostępu do Dockera, a w planach usług nie ma dla niego uprawnienia.
- Kontenery nie podlegają limitom konta. Nie obejmują ich limity CPU i RAM subskrypcji (np. LVE w CloudLinux), więc limity trzeba ustawić dla każdego kontenera osobno.
- Kopie zapasowe Pleska ich nie obejmują. Dane w wolumenach trzeba zabezpieczać własnym zadaniem.
Uruchomienie kontenera krok po kroku
- W menu Docker otwórz Obrazy i wyszukaj obraz, np.
nginx,redisalbon8nio/n8n. - Wybierz konkretną wersję (tag), nie
latest— aktualizacja obrazu nie zmieni wtedy działania aplikacji bez Twojej wiedzy. - Kliknij Uruchom. W ustawieniach kontenera określ:
- Zmienne środowiskowe — konfigurację aplikacji (hasła, adresy baz);
- Mapowanie portów — ręczne, z blokadą dostępu z internetu (opis niżej);
- Mapowanie wolumenów — katalogi na trwałe dane;
- Limit pamięci;
- Automatyczny start po restarcie systemu.
- Uruchom kontener i sprawdź zakładkę logów.
Porty i bezpieczeństwo sieci
Przy automatycznym mapowaniu Docker publikuje port kontenera na wszystkich adresach serwera, czyli także w internecie. Takie porty potrafią ominąć reguły firewalla zarządzanego przez panel. Bezpieczniej:
- wyłączyć automatyczne mapowanie i ustawić port ręcznie;
- zaznaczyć opcję, która blokuje dostęp do portu z internetu (port nasłuchuje wtedy tylko na
127.0.0.1); - udostępniać aplikację wyłącznie przez domenę i reverse proxy (następna sekcja).
Bazy danych, Redis i panele administracyjne nie powinny mieć publicznego portu.
Domena, reverse proxy i HTTPS
Żeby aplikacja z kontenera była dostępna pod adresem https://app.twojafirma.pl:
- utwórz domenę lub subdomenę i wystaw dla niej certyfikat Let's Encrypt;
- w ustawieniach domeny otwórz Docker Proxy Rules i dodaj regułę: adres URL (np.
/), kontener i jego port; - Plesk dopisze do konfiguracji nginx domeny przekierowanie
proxy_passdo portu kontenera — HTTPS obsługuje domena, a kontener może mówić zwykłym HTTP.
Reguła proxy wymaga ręcznego mapowania portu.
Wolumeny i trwałe dane
Wszystko, co kontener zapisuje w swoim systemie plików, znika przy jego odtworzeniu (np. po aktualizacji obrazu). Dane, które muszą przetrwać — pliki bazy danych, przesłane pliki, konfigurację — zapisuj w wolumenach, czyli katalogach serwera zamapowanych do kontenera. Dobrze trzymać je w jednym katalogu, np. /var/www/vhosts/twojafirma.pl/docker/app/, poza katalogiem publicznym strony. Kontener może zapisywać pliki z innym właścicielem (UID) niż użytkownik subskrypcji — nie mapuj więc do kontenera katalogu httpdocs.
Docker Compose: przykład stosu
Stos (Stack) w Plesku to plik docker-compose.yml wklejony w edytorze, wgrany albo wskazany z katalogu domeny. Przykład aplikacji z bazą PostgreSQL — z przypiętymi wersjami, limitami i portem dostępnym tylko lokalnie:
services:
app:
image: ghcr.io/twoja-firma/aplikacja:1.4.2
restart: unless-stopped
environment:
DATABASE_URL: postgres://app:${DB_PASSWORD}@db:5432/app
NODE_ENV: production
ports:
- "127.0.0.1:8080:3000" # tylko lokalnie; na zewnątrz przez Docker Proxy Rules
depends_on:
- db
mem_limit: 512m
cpus: 0.5
pids_limit: 256
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: app
POSTGRES_USER: app
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- ./data/postgres:/var/lib/postgresql/data
mem_limit: 512m
cpus: 0.5
# bez sekcji ports: baza jest dostępna tylko dla kontenerów stosu
Hasła trzymaj w pliku .env obok pliku Compose (poza repozytorium), a nie wpisane w docker-compose.yml. Stos możesz uruchomić (up, także z pobraniem nowych obrazów), zatrzymać (stop) albo usunąć (down).
Kopie zapasowe wolumenów
Kopia zapasowa Pleska nie obejmuje kontenerów, obrazów ani wolumenów, a nawet konfiguracji mapowań. Minimalny zestaw zabezpieczeń:
- plik
docker-compose.ymli opis konfiguracji w repozytorium; - regularny zrzut bazy z kontenera, zapisany w katalogu objętym kopią subskrypcji:
docker compose exec -T db pg_dump -U app app | gzip > backup/app-$(date +%F).sql.gz
- archiwum katalogu wolumenu z plikami (np.
tar) wykonywane przy zatrzymanej aplikacji albo z mechanizmem spójności danej aplikacji; - test odtworzenia — kopia, której nikt nie odtworzył, jest tylko nadzieją.
Limity zasobów, restart i logi
- Limity: w panelu ustawisz limit pamięci; CPU, liczbę procesów i inne ograniczenia najwygodniej opisać w pliku Compose (
mem_limit,cpus,pids_limit). - Restart: polityka
restart: unless-stoppedpodnosi kontener po awarii i po restarcie serwera; w panelu jest też opcja automatycznego startu. - Logi: podgląd w szczegółach kontenera. Rozmiar logów warto ograniczyć, żeby nie zapełniły dysku.
- Aktualizacje: zmieniasz tag obrazu, pobierasz go i odtwarzasz kontener. Dane z wolumenów zostają.
Najczęstsze problemy
- Aplikacja działa na porcie, ale nie pod domeną — brak reguły Docker Proxy Rules albo automatyczne mapowanie portu zamiast ręcznego.
- Po aktualizacji zniknęły dane — zapisywane były w kontenerze, a nie w wolumenie.
- Kontener restartuje się w kółko — błąd konfiguracji (brak zmiennej, zły adres bazy) albo przekroczony limit pamięci; sprawdź logi.
- Port bazy danych widoczny z internetu — publikacja portu na wszystkich adresach; usuń mapowanie albo ogranicz je do
127.0.0.1. - Brak uprawnień do plików w wolumenie — kontener działa jako inny użytkownik (UID); ustaw właściciela katalogu zgodnie z dokumentacją obrazu.
FAQ
Czy klient hostingu może sam uruchomić kontener w Plesku?
W Plesku zarządzanie Dockerem jest dostępne tylko dla administratora serwera, dlatego na hostingu kontener zwykle uruchamia operator.
Czy kontenery są w kopii zapasowej?
Nie. Kopia Pleska nie obejmuje kontenerów ani wolumenów — dane trzeba zabezpieczać osobno.
Czy mogę użyć gotowego pliku docker-compose.yml?
Tak, jako stos. Przed uruchomieniem przypnij wersje obrazów, usuń publiczne porty baz danych i dodaj limity zasobów.
Docker czy Node.js Toolkit?
Prosta aplikacja Node.js działa bez kontenera, przez Node.js Toolkit. Docker ma sens, gdy aplikacja potrzebuje własnego środowiska, kilku usług naraz albo gotowego obrazu od producenta.
Weryfikacja techniczna: 17.09.2026, dokumentacja Plesk Obsidian 18.0.80 i rozszerzenia Docker 2.x. Na serwerach DoSieci Docker nie był jeszcze uruchamiany. Powiązane poradniki: aplikacja Node.js w Plesku, PostgreSQL w Plesku. Pakiety: hosting VIP.
