MC Docker Velocity
Um einen Docker-Container mit Debian zu konfigurieren, der vier Minecraft Paper-Server in verschiedenen Versionen und einen Velocity-Proxy-Server enthält, können wir den mcserver_installer
verwenden. Diese Anleitung führt durch die Schritte zur Erstellung eines solchen Containers.

Voraussetzungen
- Docker und Docker Compose sollten auf dem System installiert sein.
- Grundkenntnisse im Umgang mit der Kommandozeile.
Um Docker und Docker Compose zu installieren, führen wir folgende Schritte aus:
- Docker installieren:
- Aktualisieren des Paketmanagements mit
sudo apt-get update
(für Debian-basierte Systeme). - Installieren von Docker mit
sudo apt-get install docker-ce docker-ce-cli containerd.io
. - Starten des Docker-Dienstes mit
sudo systemctl start docker
und sich selbst zur Docker-Gruppe hinzufügen:sudo usermod -aG docker $USER
.
- Aktualisieren des Paketmanagements mit
- Docker Compose installieren:
- Nun laden wir die neueste Version von Docker Compose herunter mit
`sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '(?<=tag_name": ")[^"]*')" -o /usr/local/bin/docker-compose`.
- Danach machen wir die Datei ausführbar mit
sudo chmod +x /usr/local/bin/docker-compose
.
Verifizieren der Installation mit docker --version
und docker-compose --version
.
1. Erstellen des Dockerfiles
Zunächst erstellen wir ein Dockerfile
, das den grundlegenden Aufbau des Containers definiert.
# Basis-Image von Debian
FROM debian:latest
# Autor-Label
LABEL maintainer="dein_name@example.com"
# System aktualisieren und notwendige Pakete installieren
RUN apt-get update && apt-get upgrade -y && \
apt-get install -y openjdk-17-jre-headless curl wget sudo vim unzip git
# Installiere mcserver_installer
RUN git clone https://github.com/NullSoldier/mcserver_installer.git /opt/mcserver_installer
# Verzeichnisse für die Minecraft-Server erstellen
RUN mkdir -p /minecraft/server1 /minecraft/server2 /minecraft/server3 /minecraft/server4 /minecraft/velocity
# Startskript hinzufügen
COPY start.sh /start.sh
RUN chmod +x /start.sh
# Exponiere die notwendigen Ports
EXPOSE 25565 25566 25567 25568 25577
# Startbefehl beim Containerstart
CMD ["/start.sh"]
2. Startskript erstellen
Erstelle das Startskript start.sh
, das die Installation und den Start der Minecraft-Server und des Velocity-Proxys regelt.
#!/bin/bash
# Installiere Paper-Server
cd /opt/mcserver_installer
./mcserver install --path /minecraft/server1 --version latest
./mcserver install --path /minecraft/server2 --version 1.19.2
./mcserver install --path /minecraft/server3 --version 1.18.2
./mcserver install --path /minecraft/server4 --version 1.17.1
# Konfiguriere die Server, um sie mit Velocity zu verbinden
echo "server1:
motd: '&1Server 1'
address: localhost:25565
restricted: false
server2:
motd: '&2Server 2'
address: localhost:25566
restricted: false
server3:
motd: '&3Server 3'
address: localhost:25567
restricted: false
server4:
motd: '&4Server 4'
address: localhost:25568
restricted: false" > /minecraft/velocity/velocity.toml
# Konfiguriere die Ports und Whitelist
sed -i 's/server-port=.*/server-port=25565/' /minecraft/server1/server.properties
sed -i 's/server-port=.*/server-port=25566/' /minecraft/server2/server.properties
sed -i 's/server-port=.*/server-port=25567/' /minecraft/server3/server.properties
sed -i 's/server-port=.*/server-port=25568/' /minecraft/server4/server.properties
# Velocity installieren
cd /minecraft/velocity
wget https://versions.velocitypowered.com/download/velocity-3.1.2-SNAPSHOT-174.jar -O velocity.jar
# Starte die Server
cd /minecraft/server1
java -Xms1G -Xmx1G -jar paper.jar nogui &
cd /minecraft/server2
java -Xms1G -Xmx1G -jar paper.jar nogui &
cd /minecraft/server3
java -Xms1G -Xmx1G -jar paper.jar nogui &
cd /minecraft/server4
java -Xms1G -Xmx1G -jar paper.jar nogui &
# Starte Velocity
cd /minecraft/velocity
java -Xms1G -Xmx1G -jar velocity.jar nogui &
3. Konfiguration von Velocity
Passe die Konfigurationsdatei velocity.toml
an, um die Minecraft-Server korrekt zu integrieren.
[servers]
server1 = "localhost:25565"
server2 = "localhost:25566"
server3 = "localhost:25567"
server4 = "localhost:25568"
[forced-hosts]
"yourdomain.com" = ["server1"]
[advanced]
compression_threshold = 256
proxy_protocol = false
online_mode = true
bungeeguard = false
player_info_forwarding_mode = "MODERN"
forwarding_secret = "yoursecret"
4. Docker-Container bauen und starten
- Docker-Image bauen:
docker build -t minecraft-multi-server .
- Container starten:
docker run -d --name mc-server --network host minecraft-multi-server
5. Zugriff auf den Server
Der Velocity-Proxy ist jetzt über den Port 25577
erreichbar, und die vier Minecraft-Server sind über Velocity verbunden. Spieler, die sich mit dem Proxy verbinden, können durch Velocity automatisch zu den verschiedenen Minecraft-Servern weitergeleitet werden.
Hier geht es zur Velocity Dokumentation
Fazit
Mit dieser Anleitung hast du einen Docker-Container erstellt, der vier verschiedene Minecraft Paper-Server-Versionen und einen Velocity-Proxy-Server hostet. Die Konfiguration ermöglicht es, mehrere Server über eine einzige Adresse zu verwalten und Spielern eine nahtlose Erfahrung zu bieten, wenn sie zwischen verschiedenen Welten wechseln.