#howto - Creare un server minecraft in container
Come creare un server di minecraft dockerizzato
Quante volte vi siete trovati in difficoltà nel gestire diversi server minecraft sulla vostra macchina? Beh, i container possono risolvere tutto questo.
Nota: Questo articolo fa uso di Docker o Podman, se desideri maggiori delucidazioni in materia potresti dare un’occhiata a quest’altro articolo.
Impostazione del container
Per il container useremo itzg/minecraft-server e docker-compose.
Iniziamo creando una nuova cartella in cui lavorare.
Dopodiché creiamo un file chiamato docker-compose.yml
.
Versione
All’interno del file dobbiamo specificare la versione del formato (non la versione di docker-compose):
version: '3'
Creazione del servizio
Un file di docker-compose è composto da servizi. Andiamo a creare il servizio del nostro server e chiamiamolo mcserver
:
version: '3'
services:
mcserver:
Immagine e nome del servizio
Andiamo a specificare l’immagine che useremo per il server e il nome che comparirà nella lista dei container attivi col comando docker ps -a
o podman ps -a
(in questo caso server-1
)
version: '3'
services:
mcserver:
image: "itzg/minecraft-server"
container_name: "server-1"
Porta e cartella dei dati
Adesso diamo al container la possibilità di esporre la porta 35565
e impostiamo la cartella dove i dati del server verranno salvati (che in questo caso chiameremo dati_server
):
version: '3'
services:
mcserver:
image: "itzg/minecraft-server"
container_name: "server-1"
ports:
- 25565:25565
volumes:
- "./dati_server:/data"
EULA e restart
Come in per ogni altro server minecraft è necessario accettare l’accordo con l’utente finale di Mojang prima di poter effettuare l’avvio.
version: '3'
services:
mcserver:
image: "itzg/minecraft-server"
container_name: "server-1"
ports:
- 25565:25565
volumes:
- "./dati_server:/data"
environment:
EULA: "TRUE"
restart: "unless-stopped"
L’opzione restart
ci permette di indicare in questo caso di riavviare il server se mai dovesse involontariamente spegnersi.
Impostazioni aggiuntive
È possibile tramite la sezione environment
fornire alcune impostazioni che normalmente specificheremmo nel file server.properties
o addirittura utilizzare un host per plugin come paperspigot (nonostante sia possibile modificare a mano i file di configurazione consiglio sempre di fare il più possibile nel docker-compose.yml
).
Nota:
PaperSpigot è un immagine ottimizzata per avviare server paperMC
Ecco un paio di esempi in cui viene disabilitata la online mode
(cioè viene disattivata l’autenticazione tramite account ufficiale) e impostato paper come plugin host.
version: '3'
services:
mcserver:
image: "itzg/minecraft-server"
container_name: "server-1"
ports:
- 25565:25565
volumes:
- "./dati_server:/data"
environment:
EULA: "TRUE"
ONLINE_MODE: "FALSE"
TYPE: "PAPER"
restart: "unless-stopped"
Potrete trovarne altri direttamente nel README della repository del progetto su github: itzg/docker-minecraft-server
Interazione col server
Avvio e spegnimento
Ora che il nostro file docker-compose.yml
è pronto per avviare il server ci basterà dare il comando docker-compose up -d
(la flag -d
serve per evitare che il server catturi l’input della nostra tastiera).
Per disattivare il server ci basterà dare il comando docker-compose down
.
Nota: Ogni comando di docker-compose dovrà essere eseguito nella stessa cartella dove è presente il nostro docker-compose.yml
.
Connessione alla console
A questo punto è possibile connetterci alla console del server tramite rcon col comando:
docker exec -i server-1 rcon-cli
Prestando bene attenzione a sostituire “server-1” con il container_name
che abbiamo scelto all’interno del nostro docker-compose.yml
.
Accedere ai file
Sarà possibile modificare tutti i file di configurazione del server e aggiungere plugin accedendo alla cartella che abbiamo impostato per il salvataggio dati (in questo caso dati_server
).