Docker do hostingu serwerów gier

Docker to platforma konteneryzacji, która pakuje oprogramowanie w standaryzowane jednostki (kontenery). Dla hostingu serwerów gier oferuje duże korzyści: izolację, powtarzalność i łatwe zarządzanie. W tym artykule wyjaśniamy, jak możesz używać Dockera do swoich serwerów gier.

Dlaczego Docker do serwerów gier?

  • Izolacja: każdy kontener jest niezależny. Awaria jednego serwera gier nie wpływa na inne.
  • Spójność: kontener działa wszędzie tak samo, czy to na laptopie, czy na serwerze produkcyjnym.
  • Szybkie uruchamianie: nowy serwer jest gotowy w kilka sekund.
  • Łatwe aktualizacje: pobierz nowy obraz, zrestartuj kontener, gotowe.
  • Kontrola zasobów: ustaw maksimum CPU i RAM dla każdego kontenera.

Instalacja Dockera

# Ubuntu/Debian
apt update
apt install docker.io docker-compose-v2
systemctl enable docker
systemctl start docker

Przykład: serwer Minecraft w Dockerze

Użyj popularnego obrazu itzg/minecraft-server:

docker run -d \
  --name minecraft \
  -p 25565:25565 \
  -e EULA=TRUE \
  -e TYPE=PAPER \
  -e VERSION=LATEST \
  -e MEMORY=4G \
  -v /data/minecraft:/data \
  itzg/minecraft-server

To wszystko. Serwer Paper z 4 GB RAM, dostępny na porcie 25565, z danymi przechowywanymi w /data/minecraft.

Docker Compose

Dla wielu serwerów użyj Docker Compose. Utwórz plik docker-compose.yml:

services:
  minecraft:
    image: itzg/minecraft-server
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: PAPER
      MEMORY: 4G
    volumes:
      - ./minecraft-data:/data
    restart: unless-stopped
    deploy:
      resources:
        limits:
          memory: 5G
          cpus: "2.0"

  terraria:
    image: ryshe/terraria
    ports:
      - "7777:7777"
    volumes:
      - ./terraria-data:/root/.local/share/Terraria/Worlds
    restart: unless-stopped

Uruchom wszystko poleceniem: docker compose up -d

Ustawianie limitów zasobów

Ogranicz, ile zasobów może zużywać każdy kontener:

docker run -d \
  --name minecraft \
  --memory=5g \
  --cpus=2.0 \
  ...

To zapobiega sytuacji, w której jeden serwer pochłania wszystkie zasoby i wpływa na inne serwery lub system hosta.

Polecenia zarządzania

docker ps                  Pokaż uruchomione kontenery
docker logs minecraft      Zobacz logi kontenera
docker stop minecraft      Zatrzymaj kontener
docker start minecraft     Uruchom kontener
docker restart minecraft   Zrestartuj kontener
docker exec -it minecraft bash  Otwórz powłokę w kontenerze

Kopie zapasowe z Dockerem

Ponieważ wszystkie dane są w wolumenach, tworzenie kopii zapasowych jest proste:

# Zatrzymaj kontener (opcjonalnie, dla spójności)
docker stop minecraft

# Skopiuj dane
tar -czf minecraft-backup.tar.gz /data/minecraft/

# Uruchom ponownie
docker start minecraft

Docker vs. Pterodactyl

Pterodactyl używa Dockera pod spodem! Różnica polega na tym, że Pterodactyl zapewnia interfejs webowy nad Dockerem, w tym zarządzanie użytkownikami, menedżer plików i konsolę. Jeśli czujesz się komfortowo z linią poleceń, możesz używać Dockera bezpośrednio dla większej elastyczności.

Czy Docker spowalnia mój serwer gier?

Nie, kontenery Docker działają natywnie na jądrze hosta. Narzut jest minimalny (mniej niż 1%). Jest to inne niż wirtualizacja (VPS), gdzie symulowana jest pełna warstwa systemu operacyjnego.

Czy mogę używać Dockera na każdym VPS?

Na większości tak. Potrzebujesz VPS Linux z wirtualizacją KVM lub bare-metal. Kontenery OpenVZ często nie obsługują Dockera. W HostValues Docker działa bez problemów na naszych VPS opartych na KVM.

Czy Docker jest bezpieczny dla serwerów gier?

Tak, Docker zapewnia dodatkowe bezpieczeństwo przez izolację. Skompromitowany kontener nie ma dostępu do innych kontenerów ani systemu hosta. Używaj jednak zawsze oficjalnych obrazów i aktualizuj je.

Uruchom Dockera na VPS w HostValues z wirtualizacją KVM i dostępem root.


Nadal masz pytania? Utworz ticket, a nasz zespol Ci pomoze.

Powrot do bloga