OKWszystkie usługi działają prawidłowo
InfrawireLogo InfrawireDokumentacja

Instalacja Dockera na VPS z Linuxem

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
1# Aktualizacja listy pakietów 2sudo apt update 3 4# Aktualizacja zainstalowanych pakietów 5sudo apt upgrade -y

Krok 2: Instalacja zależności

Bash
1# 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

Bash
1# 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)

Bash
1# 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

Bash
1# 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

Bash
1# Uruchomienie usługi Dockera 2sudo systemctl start docker 3 4# Włączenie Dockera przy starcie systemu 5sudo systemctl enable docker

Krok 6: Weryfikacja instalacji

Bash
1# 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:

Bash
1# 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:

  1. Pobierze obraz hello-world z Docker Hub
  2. Utworzy kontener z tego obrazu
  3. Uruchomi kontener
  4. Wyświetli komunikat potwierdzający

Lista kontenerów

Bash
1# 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

Bash
1# 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

Bash
1# 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

Bash
1# 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

Bash
1# 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

Bash
1# 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:

Bash
sudo nano /etc/docker/daemon.json

Dodaj konfigurację:

JSON
1{ 2 "log-driver": "json-file", 3 "log-opts": { 4 "max-size": "10m", 5 "max-file": "3" 6 } 7}

Restart Dockera:

Bash
sudo 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:

  1. Przyznawać dostęp tylko zaufanym użytkownikom
  2. Użyć trybu rootless Dockera (zaawansowana instalacja)
  3. Skonfigurować polityki bezpieczeństwa przez AppArmor lub SELinux

🔄 Aktualizacja Dockera

Na Ubuntu/Debian

Bash
1# 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

Bash
1# 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

Bash
1# 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:

Bash
1# 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

Bash
1# Katalog projektu 2mkdir moj-projekt 3cd moj-projekt 4 5# Plik docker-compose.yml 6nano docker-compose.yml

Przykładowa zawartość:

YAML
1version: '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
1# 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.