Docker pozwala uruchamiać aplikacje w kontenerach: odizolowanych środowiskach, które zawierają wszystko, czego aplikacja potrzebuje. Żadnych konfliktów wersji, żadnego \"ale na moim komputerze działa\". Strony internetowe, bazy danych, boty i serwery gier - wszystko działa we własnym kontenerze z własnymi zależnościami.
Instalacja Dockera na Ubuntu
Zawsze korzystaj z oficjalnego repozytorium Dockera, a nie z repozytorium Ubuntu (które zawiera przestarzałą wersję):
curl -fsSL https://get.docker.com | sh
Ten skrypt wykrywa Twoją dystrybucję i instaluje najnowszy Docker Engine oraz Docker Compose. Sprawdź instalację:
docker --version docker compose version
Twój pierwszy kontener
Uruchom serwer Nginx w kontenerze:
docker run -d --name webserver -p 80:80 nginx
Otwórz adres IP swojego VPS w przeglądarce. Zobaczysz stronę powitalną Nginx. Kontener działa w tle (-d) i mapuje port 80 kontenera na port 80 hosta.
Docker Compose
Dla bardziej złożonych konfiguracji (wiele kontenerów współpracujących ze sobą) użyj Docker Compose. Utwórz plik docker-compose.yml:
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./site:/usr/share/nginx/html
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: silnehaslo
MYSQL_DATABASE: mojadb
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
Uruchom za pomocą docker compose up -d. Oba kontenery wystartują i mogą komunikować się ze sobą przez wewnętrzną nazwę sieci Docker.
Praktyczne przykłady
- WordPress:
docker composez WordPress + MariaDB. Kompletna strona w pięć minut. - Bot Discord: zbuduj Dockerfile dla swojego bota w Pythonie lub Node.js, z automatycznym restartem przez
restart: unless-stopped. - Baza danych: MariaDB, PostgreSQL lub MongoDB w kontenerze z wolumenem dla trwałych danych.
Najważniejsze komendy
| Komenda | Funkcja |
|---|---|
docker ps | Wyświetlenie działających kontenerów |
docker logs nazwakontenera | Podgląd logów |
docker stop nazwakontenera | Zatrzymanie kontenera |
docker rm nazwakontenera | Usunięcie kontenera |
docker exec -it nazwakontenera bash | Otwarcie powłoki w kontenerze |
docker compose up -d | Uruchomienie wszystkich usług |
docker compose down | Zatrzymanie i usunięcie wszystkich usług |
Wolumeny: przechowywanie danych
Kontenery są jednorazowe. Jeśli usuniesz kontener, dane znikają. Wolumeny rozwiązują ten problem: przechowują dane poza kontenerem. Zawsze używaj wolumenu dla baz danych i plików, które chcesz zachować.
Czy Docker jest trudny do nauki?
Podstawy (uruchamianie kontenerów, zatrzymywanie, pisanie plików compose) opanujesz w jedno popołudnie. Zaawansowane tematy (sieci, wieloetapowe buildy, orkiestracja) wymagają więcej czasu, ale dla większości użytkowników VPS nie są potrzebne.
Czy mogę połączyć Dockera z Nginx na hoście?
Tak. Popularna konfiguracja: Nginx na hoście jako reverse proxy, który przekierowuje ruch do kontenerów Docker. Każdy kontener nasłuchuje na wewnętrznym porcie, a Nginx kieruje ruch na podstawie domeny.
Czy Docker zużywa dodatkową pamięć?
Minimalnie. Docker współdzieli jądro hosta - kontener dodaje od 10 do 50 MB narzutu, znacznie mniej niż maszyna wirtualna. Aplikacja w kontenerze zużywa tyle samo pamięci, co bez Dockera.
Docker możesz uruchomić na KVM VPS od HostValues z pełnym dostępem root.