Ten przewodnik opisuje instalację Dockera i Docker Compose na VPS z Linuxem. Docker to platforma konteneryzacji, która pozwala tworzyć, wdrażać i uruchamiać aplikacje w izolowanych kontenerach, ułatwiając wdrażanie i zarządzanie aplikacjami.
📋 Wymagania wstępne
- VPS z Linuxem z dostępem root lub sudo
- Ubuntu 20.04+ lub Debian 11+ (albo CentOS 7+/RHEL 7+)
- Co najmniej 1 GB RAM (zalecane 2 GB)
- Stabilne połączenie z Internetem
💡 Rekomendacja infrastruktury
Docker wymaga szybkich dysków do kompilacji i intensywnych operacji I/O. Polecamy nasz VPS NVMe dla optymalnej wydajności przy użyciu Dockera. Dyski NVMe oferują nawet do 10× wyższą prędkość niż klasyczne SSD, znacznie przyspieszając budowanie obrazów Dockera i start kontenerów.
⚠️ Ważne przed instalacją
- Sprawdź system — Docker wymaga architektury 64-bitowej
- Zrób kopię zapasową danych — instalacja może zmienić część konfiguracji systemu
- Czas instalacji — zwykle trwa od 5 do 10 minut
🔧 Instalacja na Ubuntu/Debian
Krok 1: Aktualizacja systemu
Bash# Aktualizacja listy pakietów sudo apt update # Aktualizacja zainstalowanych pakietów sudo apt upgrade -y
Krok 2: Instalacja zależności
Bash# Instalacja wymaganych pakietów sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release
Krok 3: Dodanie oficjalnego klucza GPG Dockera
Bash# Utworzenie katalogu na klucze sudo install -m 0755 -d /etc/apt/keyrings # Pobranie i dodanie klucza GPG curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # Ustawienie uprawnień sudo chmod a+r /etc/apt/keyrings/docker.gpg
Krok 4: Konfiguracja repozytorium Dockera
Bash# Dodanie repozytorium Dockera echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Krok 5: Instalacja silnika Dockera (Docker Engine)
Bash# Aktualizacja listy pakietów sudo apt update # Instalacja Docker Engine, containerd i Docker Compose sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Krok 6: Weryfikacja instalacji
Bash# Sprawdzenie, czy Docker jest poprawnie zainstalowany sudo docker --version # Sprawdzenie Docker Compose sudo docker compose version
🔧 Instalacja na CentOS/RHEL
Krok 1: Aktualizacja systemu
Bash# Aktualizacja pakietów sudo yum update -y
Krok 2: Instalacja zależności
Bash# Instalacja wymaganych pakietów sudo yum install -y yum-utils
Krok 3: Dodanie repozytorium Dockera
Bash# Dodanie repozytorium Dockera sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Krok 4: Instalacja silnika Dockera
Bash# Instalacja Docker Engine, containerd i Docker Compose sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Krok 5: Uruchomienie Dockera
Bash# Uruchomienie usługi Dockera sudo systemctl start docker # Włączenie Dockera przy starcie systemu sudo systemctl enable docker
Krok 6: Weryfikacja instalacji
Bash# Sprawdzenie wersji Dockera sudo docker --version # Sprawdzenie Docker Compose sudo docker compose version
👤 Krok 7: Konfiguracja uprawnień (ważne)
Domyślnie Docker wymaga uprawnień roota. Aby uruchamiać Dockera bez sudo, dodaj użytkownika do grupy docker:
Bash# Dodanie użytkownika do grupy docker sudo usermod -aG docker $USER # Zastosowanie zmian (wymagane wylogowanie / ponowne zalogowanie) newgrp docker
Ważne: Po dodaniu użytkownika do grupy docker musisz wylogować się i zalogować ponownie, aby zmiany zaczęły obowiązywać.
Weryfikacja uprawnień
Bash# Test Dockera bez sudo docker run hello-world
Jeśli polecenie zakończy się bez błędu, Docker jest poprawnie skonfigurowany.
🧪 Krok 8: Test Dockera
Uruchomienie kontenera testowego
Bash# Uruchomienie kontenera Hello World docker run hello-world
To polecenie:
- Pobierze obraz
hello-worldz Docker Hub - Utworzy kontener z tego obrazu
- Uruchomi kontener
- Wyświetli komunikat potwierdzający
Lista kontenerów
Bash# Lista działających kontenerów docker ps # Wszystkie kontenery (w tym zatrzymane) docker ps -a # Lista obrazów Dockera docker images
🐙 Krok 9: Instalacja Docker Compose (jeśli nie był w pakiecie)
Jeśli Docker Compose nie został zainstalowany razem z Docker Engine, zainstaluj go osobno:
Na Ubuntu/Debian
Bash# Pobranie Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # Nadanie prawa wykonywania sudo chmod +x /usr/local/bin/docker-compose # Weryfikacja instalacji docker-compose --version
Na CentOS/RHEL
Bash# Pobranie Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # Nadanie prawa wykonywania sudo chmod +x /usr/local/bin/docker-compose # Weryfikacja instalacji docker-compose --version
📦 Podstawowe polecenia Dockera
Zarządzanie obrazami
Bash# Pobranie obrazu docker pull nazwa-obrazu:tag # Lista obrazów docker images # Usunięcie obrazu docker rmi nazwa-obrazu # Czyszczenie nieużywanych obrazów docker image prune -a
Zarządzanie kontenerami
Bash# Utworzenie i uruchomienie kontenera docker run nazwa-obrazu # Kontener w tle (detached) docker run -d nazwa-obrazu # Lista działających kontenerów docker ps # Zatrzymanie kontenera docker stop id-kontenera # Uruchomienie zatrzymanego kontenera docker start id-kontenera # Restart kontenera docker restart id-kontenera # Usunięcie kontenera docker rm id-kontenera # Logi kontenera docker logs id-kontenera # Wykonanie polecenia w działającym kontenerze docker exec -it id-kontenera /bin/bash
Docker Compose
Bash# Uruchomienie usług z pliku docker-compose.yml docker compose up # Uruchomienie w tle docker compose up -d # Zatrzymanie usług docker compose down # Logi docker compose logs # Ponowna budowa obrazów docker compose build
🔒 Zabezpieczenie Dockera
Konfiguracja demona Dockera (opcjonalnie)
Utwórz lub edytuj /etc/docker/daemon.json:
Bashsudo nano /etc/docker/daemon.json
Dodaj konfigurację:
JSON1{ 2 "log-driver": "json-file", 3 "log-opts": { 4 "max-size": "10m", 5 "max-file": "3" 6 } 7}
Restart Dockera:
Bashsudo systemctl restart docker
Ograniczenie dostępu do Dockera
Domyślnie użytkownicy w grupie docker mają uprawnienia zbliżone do roota. Dla większego bezpieczeństwa możesz:
- Przyznawać dostęp tylko zaufanym użytkownikom
- Użyć trybu rootless Dockera (zaawansowana instalacja)
- Skonfigurować polityki bezpieczeństwa przez AppArmor lub SELinux
🔄 Aktualizacja Dockera
Na Ubuntu/Debian
Bash# Aktualizacja pakietów sudo apt update # Aktualizacja Dockera sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Na CentOS/RHEL
Bash# Aktualizacja Dockera sudo yum update docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
🗑️ Odinstalowanie Dockera
Aby odinstalować Dockera:
Na Ubuntu/Debian
Bash# Zatrzymanie Dockera sudo systemctl stop docker # Odinstalowanie pakietów sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # Usunięcie obrazów, kontenerów i wolumenów sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
Na CentOS/RHEL
Bash# Zatrzymanie Dockera sudo systemctl stop docker # Odinstalowanie pakietów sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # Usunięcie obrazów, kontenerów i wolumenów sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
❓ Typowe problemy
Błąd „Cannot connect to the Docker daemon”
Rozwiązanie:
Bash# Sprawdź, czy usługa Docker działa sudo systemctl status docker # Uruchom Dockera w razie potrzeby sudo systemctl start docker # Sprawdź, czy jesteś w grupie docker groups
Błąd „Permission denied”
Rozwiązanie:
Bash# Dodaj użytkownika do grupy docker sudo usermod -aG docker $USER # Wyloguj się i zaloguj ponownie
Docker jest wolny
Możliwe działania:
- Sprawdź miejsce na dysku:
df -h - Usuń nieużywane obrazy:
docker system prune -a - Sprawdź dostępną pamięć:
free -h
📝 Przykład: wdrożenie prostej aplikacji
Utworzenie pliku docker-compose.yml
Bash# Katalog projektu mkdir moj-projekt cd moj-projekt # Plik docker-compose.yml nano docker-compose.yml
Przykładowa zawartość:
YAML1version: '3.8' 2 3services: 4 web: 5 image: nginx:latest 6 ports: 7 - "80:80" 8 volumes: 9 - ./html:/usr/share/nginx/html 10 restart: unless-stopped
Uruchomienie aplikacji
Bash# Uruchomienie usług docker compose up -d # Sprawdzenie działającego kontenera docker ps
📞 Potrzebujesz pomocy?
Jeśli napotkasz problemy z instalacją Dockera, skontaktuj się z pomocą techniczną Infrawire. Jesteśmy dostępni, aby pomóc.
Uwaga: Docker to potężne narzędzie, które znacznie ułatwia wdrażanie aplikacji. Warto zrozumieć podstawowe pojęcia przed wdrożeniami produkcyjnymi.