🐳 Minecraft + Docker: Mi configuración personal para no sufrir con Java

Published: (February 4, 2026 at 11:18 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

🇺🇸 Read this post in English

No soy ningún gurú de Java, y seré honesto: gestionar servidores de Minecraft siempre me pareció un rompecabezas extraño. A pesar de que Minecraft pueda parecer un juego “random” de poner cubitos, la gestión técnica detrás de un servidor (hilos, memoria, recolección de basura) es un reto de optimización fascinante.

En su momento intenté crear plugins (con resultados… “interesantes”), pero aprendí a la mala que la verdadera batalla casi siempre es la configuración.

¿Te ha pasado? Quieres jugar un Survival con amigos, buscas “mejor configuración paper 1.21” y terminas con 20 pestañas abiertas y tres wikis que se contradicen.

Cansado de copiar y pegar las mismas líneas de configuración una y otra vez, se me ocurrió armar Paper Config Optimized. No quería hacer “otra guía más”. Quería un lugar donde centralizar de verdad las mejores prácticas de la comunidad en archivos listos para usar. De hecho, me he vuelto tan fan de esta “infraestructura como código” que hace poco hice mi primera contribución al repositorio oficial de la imagen de Docker que usamos (PR #3076 en itzg/docker-minecraft-server) y planeo seguir aportando para mejorar el ecosistema.

Configuración Docker Compose

services:
  mc:
    image: itzg/minecraft-server
    container_name: paper-lite
    restart: unless-stopped
    ports:
      - "25565:25565"

    # Consola interactiva (nunca está de más para ver qué pasa)
    stdin_open: true
    tty: true

    environment:
      # Papeleo burocrático de Mojang y elección del software (Paper vuela)
      EULA: "TRUE"
      TYPE: "PAPER"

      # Siempre a la última. Vivir al límite.
      VERSION: "LATEST"

      # Activamos las flags de Aikar.
      # Créeme, no quieres gestionar el Garbage Collector manualmente.
      USE_AIKAR_FLAGS: "true"

      # Zona horaria (cámbiala a la tuya para no volverte loco con los logs)
      TZ: "America/Santiago"

      # ✨ LA MAGIA:
      # Inyecta las configs optimizadas del repositorio automáticamente al iniciar.
      PAPER_CONFIG_REPO: "https://raw.githubusercontent.com/Alpha018/paper-config-optimized/main"

    volumes:
      - ./minecraft-data:/data

Lo importante aquí es que le estamos diciendo a Docker dos cosas clave:

  1. Usa Aikar’s Flags – para que Java no se ponga caprichoso con la memoria.
  2. Descargar las configs del repositorio – para que el juego corra fluido sin tener que tocar nada.

Cómo iniciar el servidor

  1. Guarda el bloque anterior en un archivo llamado docker-compose.yml.
  2. Abre una terminal en la carpeta donde está el archivo.
  3. Ejecuta:
docker compose up -d

Docker descargará la imagen, inyectará las configuraciones optimizadas y pondrá el servidor en marcha.

Ventajas y limitaciones

AspectoDetalle
VelocidadPasas de “cero” a “servidor optimizado” en 2 minutos.
MantenimientoCon PAPER_CONFIG_REPO, si mañana salen nuevas mejoras de rendimiento, solo reinicias el contenedor para aplicarlas.
EstabilidadUsar las Aikar’s Flags elimina el ~90 % de los tirones de lag causados por Java.
Caja negraSi te gusta ajustar cada milímetro de la view‑distance a mano, sentirás que pierdes algo de control (aunque siempre puedes sobrescribir los archivos).
DependenciaDependes de que el repositorio (o tu fork) esté en línea para descargar las configs al inicio.

Esta configuración es ideal para lo que llamo “Survival Técnico Lite”. Si planeas montar una comunidad pública masiva (50 + jugadores) o quieres entender por qué 12 GB de RAM es mi número mágico para servidores grandes, consulta la guía técnica más profunda.

Guía Técnica Avanzada

Échale un ojo a la Guía Técnica Avanzada en Buy Me a Coffee

Agradecimientos

A una chica que, sin saberlo, me empujó a seguir creando y programando en mi tiempo libre. A quien alguna vez fue mi chispa: para “YLP”, con gratitud… y con cicatrices que también enseñan.

Back to Blog

Related posts

Read more »

14.Provision IAM User with Terraform

Lab Information The Nautilus DevOps team is experimenting with Terraform provisioners. Your task is to create an IAM user and use a local-exec provisioner to l...

The world of AWS Cloud

What is AWS? At its simplest, AWS is a secure cloud services platform that offers compute power, database storage, content delivery, and other functionality. T...