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.