O Docker
Docker to silnik kontenerów: pakuje aplikację wraz z zależnościami w obraz, a następnie uruchamia ją w izolacji na jądrze hosta. Programiści używają go, żeby mieć to samo środowisko lokalnie i na produkcji. Małe zespoły hostują dzięki niemu kilka usług na jednej maszynie, bez konfliktów między ich zależnościami.
Po dostawie Twój VPS z Linuksem (Debian 12, Debian 13, Ubuntu 22.04 lub 24.04 oraz Ubuntu 20.04 z zastrzeżeniami opisanymi niżej) ma zainstalowany Docker Engine z oficjalnego repozytorium apt Dockera. Na serwerze są pakiety docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin i docker-compose-plugin, a usługi docker i containerd startują razem z systemem.
Klucz podpisujący repozytorium jest weryfikowany po odcisku palca jeszcze przed instalacją. Na końcu receptury uruchamiany jest kontener hello-world, który potwierdza, że demon odpowiada. Dalej serwer należy do Ciebie: domyślnie nikt nie trafia do grupy docker i żadna aplikacja nie jest wdrażana za Ciebie.
Co możesz zrobić z Docker
Oficjalne repozytorium apt Dockera
Pakiety pochodzą z download.docker.com, a odcisk palca klucza podpisującego jest sprawdzany. Aktualizacje przechodzą przez apt, tak jak reszta systemu.
Compose i Buildx w zestawie
Wtyczka Compose działa jako
docker compose(bez myślnika), a Buildx służy do budowania obrazów. Wielousługowy stos możesz wdrożyć już przy pierwszym połączeniu.Skonfigurowana rotacja logów
Jeśli plik
/etc/docker/daemon.jsonnie istnieje, receptura tworzy go ze sterownikiemjson-file, limitem 10 MB na plik i 3 zachowywanymi plikami. Logi kontenerów nie zapełnią dysku niepostrzeżenie.Usunięte pakiety powodujące konflikty
Nieoficjalne pakiety, takie jak
docker.io,podman-docker,containerdczyrunc, są usuwane przed instalacją. Dzięki temu unikasz mieszania wersji, które potrafi zatrzymać demona.Kontrolowany dostęp równoważny rootowi
Żadne konto nie jest dodawane do grupy
docker, która daje uprawnienia równoważne rootowi. To Ty decydujesz, kto dostaje takie uprawnienie.Czytelny dziennik instalacji
Każdy krok jest zapisywany w
/var/log/docker-install.log, a plik/var/lib/docker-install.donepotwierdza, że receptura wykonała się do końca.
Pierwsze kroki z Docker
Od zamówienia do produkcji w kilka minut.
- 1
Zamów VPS z zaznaczonym Dockerem
Wybierz VPS z Linuksem w Paryżu lub Frankfurcie, system Debian 12, Debian 13, Ubuntu 22.04 lub 24.04, a następnie zaznacz Docker w zakładce „Aplikacje” formularza zamówienia.
- 2
Połącz się i sprawdź instalację
Gdy serwer zostanie dostarczony, zaloguj się przez SSH danymi, które otrzymasz. Instalacja wykonuje się przy pierwszym uruchomieniu: jeśli plik znacznika jeszcze nie istnieje, poczekaj chwilę i śledź dziennik.
Bashssh USER@SERVER_IP cat /var/lib/docker-install.done tail -n 20 /var/log/docker-install.log - 3
Uruchom pierwszy kontener
Sprawdź wersje, a potem wystartuj testowy serwer WWW. Port jest publikowany wyłącznie na 127.0.0.1, więc na czas testów nie jest wystawiony do Internetu.
Bashdocker --version && docker compose version docker run -d --name web -p 127.0.0.1:8080:80 nginx curl -I http://127.0.0.1:8080 - 4
Zabezpiecz serwer przed produkcją
Postaw przed usługami reverse proxy (Caddy, Traefik lub Nginx), które obsłuży YOUR_DOMAIN po HTTPS, i publikuj w Internecie tylko porty 80 i 443. Pozostałe porty trzymaj na 127.0.0.1, bo porty publikowane przez Dockera omijają ufw. Na koniec skonfiguruj kopie zapasowe woluminów i plików compose.
Bashdocker volume ls docker compose up -d
Zastosowania Docker
Hosting kilku odizolowanych usług
Baza PostgreSQL, aplikacja webowa i narzędzie do monitoringu działają każde we własnym kontenerze, opisane w jednym pliku
compose.yaml. Aktualizujesz je i restartujesz niezależnie od siebie.Wdrożenie aplikacji self-hosted
Wiele projektów open source (n8n, Nextcloud, Gitea, Uptime Kuma i inne) udostępnia obraz Dockera oraz przykładowy plik Compose. VPS jest gotowy, by je przyjąć bez wcześniejszych przygotowań.
Budowanie i testowanie obrazów
Dzięki Buildx budujesz obrazy na osobnej maszynie zdalnej i nie obciążasz własnego komputera. To wygodne przy lekkim CI albo testach integracyjnych.
Odwzorowanie produkcji na stagingu
Drugi VPS z tą samą wersją Dockera i tymi samymi plikami Compose daje środowisko testowe zbliżone do produkcji, przy niewielkim nakładzie pracy administracyjnej.
Najczęstsze pytania o Docker
Receptura instaluje docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin i docker-compose-plugin z oficjalnego repozytorium apt Dockera. Usługi docker i containerd są włączone przy starcie systemu. W Compose v2 używasz polecenia docker compose, a nie docker-compose.
Więcej o Docker
Zapora i publikowane porty
To najczęstsza pułapka. Gdy publikujesz port przez -p 8080:80, Docker zapisuje własne reguły iptables, a ruch trafia do nich przed regułami ufw czy firewalld. Polecenie ufw deny 8080 niczego więc nie blokuje.
Są dwa niezawodne podejścia: przypisać port do interfejsu lokalnego (-p 127.0.0.1:8080:80) i udostępniać usługę przez reverse proxy albo filtrować w łańcuchu DOCKER-USER, który Docker sprawdza przed własnymi regułami. Pierwsze jest prostsze i w większości przypadków wystarcza.
Grupa docker i sudo
Członkostwo w grupie docker oznacza w praktyce prawa roota na maszynie: kontener może zamontować system plików hosta. Receptura nikogo do tej grupy nie dodaje. Jeśli chcesz pracować na koncie bez uprawnień administratora, dodaj je samodzielnie, a potem zaloguj się ponownie.
Bashsudo usermod -aG docker USER
Logi kontenerów
Plik /etc/docker/daemon.json zapisany przy dostawie ogranicza każdy kontener do 3 plików po 10 MB. Powstaje tylko wtedy, gdy wcześniej nie istniał. Aby zmienić te wartości, edytuj go i zrestartuj demona. Nowe ustawienia obejmą wyłącznie kontenery utworzone po restarcie.
Bashsudo systemctl restart docker
Aktualizacje
Repozytorium Dockera jest zadeklarowane w /etc/apt/sources.list.d/docker.sources, więc nowe wersje przychodzą ze zwykłymi aktualizacjami apt. Zaplanuj je na moment, w którym restart demona nie jest problemem, bo bez włączonej opcji live-restore może on przerwać działanie kontenerów.
Bashsudo apt update && sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io
Ubuntu 20.04
Docker nie wspiera już oficjalnie Ubuntu 20.04. Receptura mimo to podejmuje próbę instalacji, jeśli repozytorium Dockera nadal publikuje tę wersję, i zapisuje ostrzeżenie w dzienniku. Na serwer produkcyjny wybierz raczej Ubuntu 22.04, Ubuntu 24.04, Debiana 12 lub Debiana 13, które są wspierane.
Kopie zapasowe
Obrazy pobierzesz ponownie, danych już nie. Archiwizuj nazwane woluminy, montowane katalogi oraz pliki compose.yaml wraz ze zmiennymi środowiskowymi. W przypadku bazy danych lepszy jest eksport logiczny (pg_dump, mysqldump) niż kopia woluminu wykonana na działającej bazie.
