Docker pozwala uruchamiać strony WWW, bazy danych, boty i panele w odizolowanych kontenerach, każdy z własnymi zależnościami i bez zaśmiecania systemu.
Instalacja
Oficjalny skrypt instaluje Dockera i wtyczkę Compose w Ubuntu i Debianie:
curl -fsSL https://get.docker.com | sh
Sprawdź, czy wszystko działa:
docker run --rm hello-world
docker compose version
Przykład z Compose
Utwórz folder z plikiem docker-compose.yml, na przykład dla prostej strony WWW:
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
docker compose up -d # uruchom w tle
docker compose logs -f # podgląd logów
docker compose down # zatrzymaj
restart: unless-stopped sprawia, że kontener wraca sam po restarcie serwera VPS.
Uwaga: Docker omija ufw
Porty publikowane przez ports: (lub -p) są otwierane na cały internet nawet wtedy, gdy ufw twierdzi, że są zamknięte, bo Docker zapisuje w zaporze własne reguły. To przyczyna wielu przypadkowo wystawionych baz danych.
Jeśli z usługi korzystają tylko inne kontenery lub sam serwer, publikuj ją wyłącznie lokalnie:
ports:
- "127.0.0.1:3306:3306"
A między kontenerami z tego samego pliku docker-compose.yml nie trzeba niczego publikować: widzą się nawzajem po nazwie usługi.
Sprzątanie
Stare obrazy się gromadzą i zapełniają dysk. Co jakiś czas wykonaj:
docker system prune
Polecenie usuwa zatrzymane kontenery, nieużywane sieci i obrazy bez tagu. Wcześniej poprosi o potwierdzenie.