Najszybszy sposób: utwórz serwer z obrazu Docker
Jeśli tworzysz nowy serwer, najszybciej wybrać Docker z listy obrazów. Serwer startuje na Ubuntu 24.04 LTS z już zainstalowanymi Docker Engine i Docker Compose, a zaraz po zalogowaniu możesz wykonać docker compose up. Opis aplikacji i zalecany rozmiar znajdziesz na stronie Docker VPS.
Jeśli chcesz dodać Dockera do już działającego serwera albo użyć innego systemu, na przykład Debian lub AlmaLinux, zainstaluj go ręcznie według kroków poniżej. Wszystkie polecenia zakładają połączenie jako root. Jeśli zalogowałeś się jako zwykły użytkownik, dodawaj przed poleceniami sudo.
Co sprawdzić przed instalacją
Docker działa na serwerach dowolnej wielkości. Do osobistych projektów z kilkoma kontenerami wystarczy najmniejszy plan ogólny z 12 GB pamięci; aby uruchomić bazę danych, serwer WWW i cache razem, 24 GB lub więcej zapewni Ci miejsce. Jeśli często pobierasz i budujesz obrazy, NVMe VPS z szybkim dyskiem robi zauważalną różnicę.
Jeśli w systemie są stare pakiety Dockera z repozytorium systemu, najpierw je usuń, aby nie mieszały się z oficjalnymi. Niezainstalowane pakiety są po prostu pomijane, więc polecenie możesz wykonać bez zmian.
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt remove -y $pkg; doneInstalacja Dockera na Ubuntu 24.04
Krok 1. Dodaj klucz i adres repozytorium
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.listKrok 2. Zainstaluj Docker Engine i Compose
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginPo instalacji usługa Docker uruchamia się automatycznie i startuje razem z serwerem po restarcie. Te same polecenia działają też w Ubuntu 22.04 i 26.04. Nazwa wersji w adresie repozytorium jest pobierana automatycznie z /etc/os-release.
Instalacja Dockera na Debian 13
W Debianie kolejność jest taka sama jak w Ubuntu, zmienia się tylko adres repozytorium na linux/debian. Te same polecenia działają też w Debian 12.
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginInstalacja Dockera na AlmaLinux 10
AlmaLinux i Rocky Linux korzystają z repozytorium Dockera dla RHEL. Aby nie było konfliktu z wbudowanym Podmanem, najpierw go usuń, a potem zainstaluj Dockera. Te same polecenia działają w AlmaLinux 9 oraz Rocky Linux 9 i 10.
dnf remove -y podman buildah runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now dockerJeśli przy pierwszej instalacji pojawi się pytanie o akceptację klucza podpisu repozytorium, naciśnij y. W systemach z rodziny RHEL usługa nie uruchamia się automatycznie po instalacji, dlatego ostatnia linia systemctl enable --now docker włącza ją teraz i przy starcie systemu.
Sprawdzenie instalacji i pierwszy kontener
Uruchom kontener testowy poleceniem poniżej. Jeśli pojawi się komunikat zaczynający się od Hello from Docker, silnik, pobieranie obrazów i uruchamianie kontenerów działają. Z flagą --rm kontener jest usuwany zaraz po zakończeniu.
docker run --rm hello-world
docker compose versionJeśli chcesz używać Dockera jako zwykły użytkownik, dodaj go do grupy docker i zaloguj się ponownie. Grupa docker daje uprawnienia równe root, więc dodawaj tylko zaufanych użytkowników.
usermod -aG docker usernameUruchamianie usług przez Docker Compose
Compose pozwala opisać ustawienia kontenerów w jednym pliku YAML i uruchomić je jednym poleceniem. Przy przenosinach lub tworzeniu nowego serwera ten sam plik odtwarza to samo środowisko. Na przykład plik dla jednego serwera WWW Nginx wygląda tak.
mkdir -p /opt/web && cd /opt/web
cat > compose.yaml <<'EOF'
services:
web:
image: nginx:stable
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
EOF
docker compose up -dOtwórz w przeglądarce http://YOUR_SERVER_IP, a pojawi się strona Nginx. Jeśli umieścisz index.html w folderze html, wyświetli się ten plik. Z często używanych poleceń wystarczą cztery.
docker compose ps: pokazuje działające kontenery i ich porty.docker compose logs -f: pokazuje logi na żywo. Wyjście przez Ctrl+C.docker compose pull && docker compose up -d: pobiera nowe obrazy i aktualizuje kontenery do nowej wersji.docker compose down: zatrzymuje i usuwa kontenery. Dane w wolumenach zostają.
Jeśli wpiszesz restart: unless-stopped, kontenery same wstaną po restarcie serwera. Zatrzymane pozostaną tylko te, które zatrzymałeś sam.
Zapora i publikowanie portów
Docker sam dodaje porty opublikowane przez ports: do reguł zapory (iptables) i je otwiera. Dlatego port wpisany w ports: jest dostępny z zewnątrz, nawet jeśli nie zezwolono na niego w ufw. Bazy danych i panele zarządzania, których nie trzeba pokazywać na zewnątrz, przypnij tylko do 127.0.0.1, jak poniżej, a będą dostępne tylko z wnętrza serwera.
ports:
- "127.0.0.1:5432:5432"Wygodnie jest otwierać dla usług WWW tylko porty 80 i 443, a pozostałe usługi niech łączą się ze sobą po nazwie w jednej sieci Compose. Podstawową zaporę całego serwera skonfiguruj według poradnika podstawowej zapory i otwórz tylko SSH, HTTP i HTTPS.
Zarządzanie logami i dyskiem
Jeśli niczego nie ustawisz, logi kontenerów rosną bez ograniczeń. Ustaw sterownik logów local w /etc/docker/daemon.json, jak poniżej, a logi będą kompresowane i przechowywane tylko w ustalonej ilości. Po zapisaniu wykonaj systemctl restart docker: ustawienie zadziała dla nowych kontenerów.
{
"log-driver": "local"
}Nieużywane obrazy i zatrzymane kontenery też zajmują miejsce na dysku. Sprawdź zajętość poleceniem docker system df i usuń nieużywane obrazy poleceniem docker image prune -a. Gdy danych przybywa, możesz podłączyć do serwera dysk blokowy NVMe i używać go jako folderu danych Dockera.
Ochrona danych i kolejne kroki
Kontener możesz w każdej chwili usunąć i utworzyć ponownie, ale danych w wolumenach nie odtworzysz. Regularnie rób zrzut bazy danych, a cały serwer chroń automatycznymi kopiami zapasowymi lub migawkami. Jak to zrobić, opisuje poradnik kopii zapasowych i migawek.
Plik Compose do uruchomienia WordPressa w Dockerze znajdziesz w poradniku instalacji WordPressa. Jeśli chcesz wdrażać wiele aplikacji przez interfejs WWW i automatycznie dostawać certyfikaty HTTPS, utwórz serwer z obrazu Coolify lub Dokploy. Rozmiary dobre do pracy z kontenerami zebraliśmy na stronie kontenerowy VPS.
