Pierwsze kroki z Dockerem na VPS
Napisane przez zespół ApexVPS • Ostatnia aktualizacja: lipiec 2026 • 8 min czytania
Uruchomienie Dockera na VPS to najszybszy sposób, aby przejść od pustego Ubuntu do działającej aplikacji webowej, bazy danych lub samoobsługowej usługi w kilka minut. Zamiast walczyć z pakietami systemowymi i konfliktami zależności, pobierasz gotowy obraz i uruchamiasz kontener. Ten poradnik dla początkujących przeprowadzi Cię przez instalację Dockera i Docker Compose na Ubuntu lub Debianie, podstawowe koncepcje, uruchomienie pierwszego kontenera, trwałe przechowywanie danych przy użyciu wolumenów oraz kilka podstaw bezpieczeństwa, abyś nie naraził się na problemy.
Dlaczego warto uruchomić Docker na VPS?
Wirtualny serwer prywatny daje pełny dostęp do roota i dedykowane zasoby, co jest dokładnie tym, czego potrzebują kontenery. Z zainstalowanym Dockerem możesz uruchamiać wiele izolowanych usług obok siebie, bez wchodzenia sobie w drogę. Każdy kontener zawiera własne biblioteki, więc aplikacja Node.js, baza Postgres i odwrotne proxy mogą współistnieć na jednej maszynie. Jeśli Twoim celem jest hostowanie aplikacji na VPS — np. osobista chmura, wiki czy serwer multimediów — Docker sprawia, że każda usługa jest uporządkowana i odtwarzalna.
Kontenery są również przenośne. Ten sam plik Compose, który działa na Twoim laptopie, działa na serwerze, co eliminuje klasyczny problem “na mojej maszynie działa”. Odbudowanie usługi po błędzie zajmuje sekundy, a nie popołudnie spędzone na reinstalacji pakietów.
Podstawowe pojęcia w prostym języku
Zanim dotkniesz wiersza poleceń, warto poznać cztery elementy:
- Obraz — szablon tylko do odczytu, który zawiera aplikację i wszystko, czego potrzebuje do działania. Obrazy pobierasz z rejestru, takiego jak Docker Hub. Można go sobie wyobrazić jako migawkę lub klasę.
- Kontener — działająca instancja obrazu. Możesz swobodnie uruchamiać, zatrzymywać i usuwać kontenery. Z jednego obrazu może działać wiele kontenerów, jak obiekty utworzone z klasy.
- Wolumen — trwałe przechowywanie danych, które znajduje się poza warstwą zapisywalną kontenera. Wolumeny to sposób na przechowywanie baz danych i przesłanych plików w bezpieczny sposób, gdy kontener jest zastępowany.
- Sieć — wirtualna sieć, która pozwala kontenerom komunikować się między sobą po nazwie. Docker tworzy ją automatycznie dla każdego projektu Compose, dzięki czemu Twoja aplikacja może łączyć się z bazą danych pod przyjazną nazwą hosta.
Krok 1: Zainstaluj Docker na Ubuntu lub Debianie
Najprostszym, oficjalnie wspieranym sposobem instalacji Docker Engine jest skrypt przygotowany przez producenta. Połącz się z serwerem przez SSH i uruchom:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
To instaluje Docker Engine wraz z wtyczką Compose. Po zakończeniu sprawdź wersje:
docker --version
docker compose version
Domyślnie Docker wymaga sudo. Aby uruchamiać go jako zwykły użytkownik, dodaj siebie do grupy docker, a następnie wyloguj się i zaloguj ponownie, aby zmiany odniosły skutek:
sudo usermod -aG docker $USER
Docker na większości systemów uruchamia się automatycznie po starcie. Jeśli kiedykolwiek będziesz musiał włączyć to ręcznie:
sudo systemctl enable --now docker
Wolisz metodę z repozytorium pakietów lub potrzebujesz szczegółowych informacji dla swojego wydania dystrybucji? Oficjalna dokumentacja instalacji Docker opisuje wszystkie opcje. Powyższy skrypt instalacyjny jest idealny na świeżo zainstalowany VPS.
Krok 2: Uruchom swój pierwszy kontener
Przetestuj instalację klasycznym obrazem hello-world:
docker run hello-world
Docker pobiera obraz, uruchamia go raz i wyświetla komunikat potwierdzający. Teraz uruchommy coś, co faktycznie zobaczysz. To polecenie uruchamia serwer WWW Nginx w tle i odwzorowuje port 8080 na hoście na port 80 w kontenerze:
docker run -d -p 8080:80 --name web nginx
Otwórz http://your-server-ip:8080 w przeglądarce i powinieneś zobaczyć stronę powitalną Nginx. Kilka flag, które warto znać:
-duruchamia kontener w tle.-p 8080:80publikuje port jakohost:container.--name webnadaje kontenerowi zapadającą w pamięć nazwę.
Sprawdź, co działa, a następnie zatrzymaj i usuń kontener, gdy skończysz:
docker ps
docker stop web
docker rm web
Kilka poleceń wystarczy do większości codziennych zadań. docker images wyświetla listę pobranych obrazów, docker logs web pokazuje dane wyjściowe kontenera w celu rozwiązywania problemów, a docker exec -it web bash otwiera powłokę wewnątrz działającego kontenera, abyś mógł się po nim poruszać. Nauka tych pięciu lub sześciu poleceń wystarczy, aby pewnie zarządzać małym serwerem; resztę możesz sprawdzić w dokumentacji w razie potrzeby.
Krok 3: Użyj Docker Compose do aplikacji wielokontenerowych
Wpisywanie długich docker run poleceń szybko się nudzi. Docker Compose pozwala opisać cały stos w jednym pliku i uruchomić go jednym poleceniem. Utwórz plik o nazwie compose.yaml:
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- web-data:/usr/share/nginx/html
restart: unless-stopped
volumes:
web-data:
Z tego samego katalogu uruchom wszystko w tle:
docker compose up -d
Compose tworzy sieć, nazwany wolumen i kontener za Ciebie. Przydatne komendy:
docker compose ps
docker compose logs -f
docker compose down
Zasada restart: unless-stopped oznacza, że usługa wraca automatycznie po restarcie lub awarii — przydatne na serwerze, którego nie obserwujesz przez całą dobę.
Krok 4: Utrwalanie danych za pomocą wolumenów
To najczęstszy błąd początkujących. Wszystko, co zapiszesz wewnątrz systemu plików kontenera, znika po usunięciu lub odtworzeniu kontenera. Aby zachować dane, umieść je w wolumenie. Są dwa popularne podejścia:
- Wolumeny nazwane — zarządzane przez Docker, idealne dla baz danych. Powyższy przykład Compose używa wolumenu o nazwie
web-data. - Montowania bind — mapują folder z hosta bezpośrednio do kontenera, na przykład
./config:/etc/app. Świetne do plików konfiguracyjnych, które chcesz edytować ręcznie.
Sprawdzaj i zarządzaj wolumenami z linii poleceń:
docker volume ls
docker volume inspect web-data
Dopóki Twoje ważne ścieżki wskazują na wolumen, możesz usuwać i odtwarzać kontenery bez utraty danych. Katalog wolumenu uwzględnij w kopiach zapasowych serwera.
Krok 5: Aktualizacja obrazów i kontenerów
Obrazy kontenerów otrzymują aktualizacje zabezpieczeń i funkcji jak każde oprogramowanie. Aktualizacja stosu Compose to dwuetapowa procedura: pobierz nowsze obrazy, a następnie odtwórz kontenery.
docker compose pull
docker compose up -d
Ponieważ dane są w wolumenach, odtwarzanie jest bezpieczne. Z czasem nieużywane obrazy gromadzą się i zajmują miejsce. Od czasu do czasu je wyczyść:
docker image prune
Przypinaj konkretne tagi wersji (na przykład postgres:16 zamiast latest), gdy chcesz przewidywalne, powtarzalne aktualizacje, a nie niespodzianki.
Podstawy bezpieczeństwa Dockera dla początkujących
Kontenery są wygodne, ale nie są magiczną granicą bezpieczeństwa. Kilka nawyków uchroni Cię przed problemami:
- Uruchamiaj tylko zaufane obrazy. Preferuj oficjalne obrazy lub znanych wydawców. Nie uruchamiaj przypadkowego obrazu jako root tylko dlatego, że poradził Ci to poradnik — niezaufany obraz uruchamia kod na Twoim serwerze.
- Ogranicz roota w kontenerach. Wiele oficjalnych obrazów obsługuje użytkownika niebędącego rootem, lub możesz go ustawić za pomocą instrukcji
USERw pliku Dockerfile. Działanie na ograniczonym użytkowniku zmniejsza obszar rażenia w przypadku kompromitacji aplikacji. - Publikuj tylko potrzebne porty. Każda flaga
-potwiera drzwi do internetu. Trzymaj bazy danych w wewnętrznej sieci Dockera i wystawiaj tylko front-end. - Regularnie aktualizuj hosta. Bezpieczeństwo Dockera zaczyna się od bezpiecznego serwera. Uruchamiaj
sudo apt update && sudo apt upgraderegularnie i zabezpiecz SSH.
Zanim wystawisz cokolwiek publicznie, przejrzyj naszą listę kontrolną, jak zabezpieczyć VPS w pierwszych 10 minutach — obejmuje klucze SSH, firewall i automatyczne aktualizacje, które idealnie współgrają z hostem Docker.
Wybór VPS gotowego na Docker
Docker działa na skromnym sprzęcie, ale dedykowane zasoby naprawdę robią różnicę, gdy ułożysz kilka kontenerów. Współdzielony, przeptyżony hosting oznacza, że hałaśliwy sąsiad może ograniczyć Twoją bazę danych w najgorszym momencie. ApexVPS oferuje prawdziwie dedykowane vCPU, dyski NVMe SSD i pełny dostęp root, więc Twoje kontenery mają wydajność, za którą płacisz. Każdy plan obsługuje Ubuntu, Debian i inne popularne dystrybucje, a przy rejestracji możesz od razu dodać klucz SSH.
Płatność przy kasie odbywa się wyłącznie w kryptowalutach przez OxaPay, akceptując Bitcoin, Ethereum, USDT i ponad 30 innych kryptowalut — bez karty kredytowej, bez konta bankowego i bez KYC. Podajesz adres e-mail, aby otrzymać dane dostępowe, i to wszystko. Porównaj specyfikacje i regiony na stronie z cenami ApexVPS, aby znaleźć plan dopasowany do Twojego obciążenia kontenerowego.
Często zadawane pytania
Czy potrzebuję dużo pamięci RAM, aby uruchomić Dockera na VPS?
Nie. Sam Docker jest lekki i dodaje niewielki narzut. Jeden lub dwa kontenery działają komfortowo na 2 GB pamięci RAM, a 4 GB lub więcej daje zapas na bazy danych i kilka usług jednocześnie.
Czy to docker-compose czy docker compose?
W nowoczesnej instalacji Compose jest dostarczany jako wtyczka, więc polecenie to docker compose ze spacją. Starszy samodzielny plik binarny docker-compose nadal działa, ale jest wycofywany — użyj wersji wtyczki na świeżej instalacji.
Gdzie są przechowywane moje dane, gdy kontener zostanie usunięty?
Wszystko, co zapiszesz wewnątrz kontenera, zostanie utracone po jego usunięciu. Przechowuj ważne dane w nazwanym woluminie lub bind mount, aby przetrwały odtworzenie kontenera. W ten sposób bazy danych i pliki do przesłania pozostają bezpieczne.
Czy mogę zapłacić za VPS gotowy na Dockera kryptowalutą?
Tak. Płatność przy kasie ApexVPS jest wyłącznie kryptowalutowa przez OxaPay i akceptuje Bitcoin, Ethereum, USDT i ponad 30 innych monet. Rejestracja wymaga tylko adresu e-mail, bez karty kredytowej i bez weryfikacji tożsamości.