If you’ve decided to go the Docker route for your Minecraft server (see our Docker vs Bare Metal guide if you’re still deciding), the next question is: which image should you actually use? There are several floating around, but a handful of community-maintained ones stand out as the clear starting point for beginners. Here’s what to know before you pull your first image.
itzg/minecraft-server (Java Edition) — The Standard Choice
If you only remember one image name, make it this one. itzg/minecraft-server is the community gold standard for Java Edition — actively maintained, extremely widely used, and flexible enough to grow with you as your server needs change.
Why it’s the go-to starter image:
- Supports vanilla servers out of the box with zero extra configuration
- Also supports Forge, Fabric, Paper, Spigot, and other server types through simple environment variables — no need to switch images later if you want mods
- Handles Java version management automatically, so you don’t need to worry about matching Java versions to Minecraft versions
- Extensive environment variable support for memory allocation, difficulty, game mode, player limits, and dozens of other settings
- Actively updated — new Minecraft versions are typically supported within days of release
Basic usage:
docker run -d -it \
-p 25565:25565 \
-e EULA=TRUE \
-v /path/to/data:/data \
--name mc-server \
itzg/minecraft-server
That single command gets a working vanilla server running. From there, adding environment variables lets you switch to a modded server type, adjust memory, or change game settings without learning a new image.
itzg/minecraft-bedrock-server — For Bedrock Edition
If you’re hosting for Bedrock Edition players (console, mobile, or Windows Bedrock) instead of Java, this is the companion image from the same maintainer, built specifically for Bedrock’s different server software.
Basic usage:
docker run -d -it \
-e EULA=TRUE \
-p 19132:19132/udp \
-v mc-bedrock-data:/data \
itzg/minecraft-bedrock-server
Note the port and protocol difference — Bedrock uses UDP port 19132, not the TCP 25565 that Java Edition uses. If you’re hoping to support both Java and Bedrock players connecting to the same world, you’ll need additional crossplay tooling (like GeyserMC) layered on top — that’s a more advanced setup than a beginner needs to start with.
Why Not Build Your Own Image From Scratch?
It’s technically possible to write your own Dockerfile for a Minecraft server, but for the vast majority of users, there’s no good reason to. The itzg images are maintained by an active community, handle edge cases you likely haven’t thought of (server type switching, automatic version upgrades, memory tuning), and are used by an enormous number of servers already — meaning bugs get caught and fixed quickly. Reinventing this yourself means taking on maintenance burden for no real benefit.
What About Other Images?
You’ll find other Minecraft Docker images if you search Docker Hub, but most either duplicate what itzg/minecraft-server already does (with less active maintenance) or are built for narrow, specific use cases. For a beginner, there’s little reason to look past the itzg images — they cover the vast majority of what a home server actually needs.
Getting Started
If you haven’t set up your server yet, our step-by-step Minecraft home server guide walks through the full process using this exact image, from installing Docker through getting friends connected.