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
Bash1# Aktualizacja listy pakietów 2sudo apt update 3 4# Aktualizacja zainstalowanych pakietów 5sudo apt upgrade -y
Krok 2: Instalacja zależności
Bash1# Instalacja wymaganych pakietów 2sudo apt install -y \ 3 ca-certificates \ 4 curl \ 5 gnupg \ 6 lsb-release
Krok 3: Dodanie oficjalnego klucza GPG Dockera
Bash1# Utworzenie katalogu na klucze 2sudo install -m 0755 -d /etc/apt/keyrings 3 4# Pobranie i dodanie klucza GPG 5curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 6 7# Ustawienie uprawnień 8sudo 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)
Bash1# Aktualizacja listy pakietów 2sudo apt update 3 4# Instalacja Docker Engine, containerd i Docker Compose 5sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Krok 6: Weryfikacja instalacji
Bash1# Sprawdzenie, czy Docker jest poprawnie zainstalowany 2sudo docker --version 3 4# Sprawdzenie Docker Compose 5sudo 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
Bash1# Uruchomienie usługi Dockera 2sudo systemctl start docker 3 4# Włączenie Dockera przy starcie systemu 5sudo systemctl enable docker
Krok 6: Weryfikacja instalacji
Bash1# Sprawdzenie wersji Dockera 2sudo docker --version 3 4# Sprawdzenie Docker Compose 5sudo 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:
Bash1# Dodanie użytkownika do grupy docker 2sudo usermod -aG docker $USER 3 4# Zastosowanie zmian (wymagane wylogowanie / ponowne zalogowanie) 5newgrp docker
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
Bash1# Lista działających kontenerów 2docker ps 3 4# Wszystkie kontenery (w tym zatrzymane) 5docker ps -a 6 7# Lista obrazów Dockera 8docker 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
Bash1# Pobranie Docker Compose 2sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 3 4# Nadanie prawa wykonywania 5sudo chmod +x /usr/local/bin/docker-compose 6 7# Weryfikacja instalacji 8docker-compose --version
Na CentOS/RHEL
Bash1# Pobranie Docker Compose 2sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 3 4# Nadanie prawa wykonywania 5sudo chmod +x /usr/local/bin/docker-compose 6 7# Weryfikacja instalacji 8docker-compose --version
📦 Podstawowe polecenia Dockera
Zarządzanie obrazami
Bash1# Pobranie obrazu 2docker pull nazwa-obrazu:tag 3 4# Lista obrazów 5docker images 6 7# Usunięcie obrazu 8docker rmi nazwa-obrazu 9 10# Czyszczenie nieużywanych obrazów 11docker image prune -a
Zarządzanie kontenerami
Bash1# Utworzenie i uruchomienie kontenera 2docker run nazwa-obrazu 3 4# Kontener w tle (detached) 5docker run -d nazwa-obrazu 6 7# Lista działających kontenerów 8docker ps 9 10# Zatrzymanie kontenera 11docker stop id-kontenera 12 13# Uruchomienie zatrzymanego kontenera 14docker start id-kontenera 15 16# Restart kontenera 17docker restart id-kontenera 18 19# Usunięcie kontenera 20docker rm id-kontenera 21 22# Logi kontenera 23docker logs id-kontenera 24 25# Wykonanie polecenia w działającym kontenerze 26docker exec -it id-kontenera /bin/bash
Docker Compose
Bash1# Uruchomienie usług z pliku docker-compose.yml 2docker compose up 3 4# Uruchomienie w tle 5docker compose up -d 6 7# Zatrzymanie usług 8docker compose down 9 10# Logi 11docker compose logs 12 13# Ponowna budowa obrazów 14docker 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
Bash1# Aktualizacja pakietów 2sudo apt update 3 4# Aktualizacja Dockera 5sudo 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
Bash1# Zatrzymanie Dockera 2sudo systemctl stop docker 3 4# Odinstalowanie pakietów 5sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 6 7# Usunięcie obrazów, kontenerów i wolumenów 8sudo rm -rf /var/lib/docker 9sudo rm -rf /var/lib/containerd
Na CentOS/RHEL
Bash1# Zatrzymanie Dockera 2sudo systemctl stop docker 3 4# Odinstalowanie pakietów 5sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 6 7# Usunięcie obrazów, kontenerów i wolumenów 8sudo rm -rf /var/lib/docker 9sudo rm -rf /var/lib/containerd
❓ Typowe problemy
Błąd „Cannot connect to the Docker daemon”
Rozwiązanie:
Bash1# Sprawdź, czy usługa Docker działa 2sudo systemctl status docker 3 4# Uruchom Dockera w razie potrzeby 5sudo systemctl start docker 6 7# Sprawdź, czy jesteś w grupie docker 8groups
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
Bash1# Katalog projektu 2mkdir moj-projekt 3cd moj-projekt 4 5# Plik docker-compose.yml 6nano 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
Bash1# Uruchomienie usług 2docker compose up -d 3 4# Sprawdzenie działającego kontenera 5docker 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.